summaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@gcc.gnu.org>2019-12-12 20:46:39 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2019-12-12 20:46:39 +0000
commit3a8c69ecd95f708f5d489d92ff12dfbe2a93b00b (patch)
tree1596316424f3ab3df4c378a866d87ddca07e342f /libgcc
parent3fceb4462a7484503f3048a2c402e7996c72cc7c (diff)
parentbdaf8be1b2e3514b8bbcdd1042136e7d91b3c3f3 (diff)
Merged latest trunk changes to ira-select.devel/ira-select
From-SVN: r279316
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog1112
-rw-r--r--libgcc/Makefile.in22
-rw-r--r--libgcc/config.host169
-rw-r--r--libgcc/config.in8
-rw-r--r--libgcc/config/aarch64/aarch64-unwind.h34
-rw-r--r--libgcc/config/aarch64/crtfastmath.c2
-rw-r--r--libgcc/config/aarch64/crti.S2
-rw-r--r--libgcc/config/aarch64/crtn.S2
-rw-r--r--libgcc/config/aarch64/freebsd-unwind.h2
-rw-r--r--libgcc/config/aarch64/linux-unwind.h2
-rw-r--r--libgcc/config/aarch64/lse-init.c47
-rw-r--r--libgcc/config/aarch64/lse.S235
-rw-r--r--libgcc/config/aarch64/sfp-exceptions.c2
-rw-r--r--libgcc/config/aarch64/sfp-machine.h2
-rw-r--r--libgcc/config/aarch64/sync-cache.c59
-rw-r--r--libgcc/config/aarch64/t-aarch642
-rw-r--r--libgcc/config/aarch64/t-lse44
-rw-r--r--libgcc/config/aarch64/value-unwind.h2
-rw-r--r--libgcc/config/alpha/crtfastmath.c2
-rw-r--r--libgcc/config/alpha/libgcc-alpha-ldbl.ver2
-rw-r--r--libgcc/config/alpha/linux-unwind.h7
-rw-r--r--libgcc/config/alpha/qrnnd.S2
-rw-r--r--libgcc/config/alpha/t-linux3
-rw-r--r--libgcc/config/alpha/vms-dwarf2.S2
-rw-r--r--libgcc/config/alpha/vms-dwarf2eh.S2
-rw-r--r--libgcc/config/alpha/vms-gcc_shell_handler.c2
-rw-r--r--libgcc/config/alpha/vms-unwind.h2
-rw-r--r--libgcc/config/arc/asm.h2
-rw-r--r--libgcc/config/arc/crti.S2
-rw-r--r--libgcc/config/arc/crtn.S2
-rw-r--r--libgcc/config/arc/crttls.S2
-rw-r--r--libgcc/config/arc/divtab-arc700.c2
-rw-r--r--libgcc/config/arc/dp-hack.h2
-rw-r--r--libgcc/config/arc/fp-hack.h2
-rw-r--r--libgcc/config/arc/ieee-754/adddf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/addsf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/arc-ieee-754.h2
-rw-r--r--libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/arc600/divsf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/arc600/mulsf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/divdf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/divsf3-stdmul.S2
-rw-r--r--libgcc/config/arc/ieee-754/divsf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/divtab-arc-df.c2
-rw-r--r--libgcc/config/arc/ieee-754/divtab-arc-sf.c2
-rw-r--r--libgcc/config/arc/ieee-754/eqdf2.S2
-rw-r--r--libgcc/config/arc/ieee-754/eqsf2.S2
-rw-r--r--libgcc/config/arc/ieee-754/extendsfdf2.S2
-rw-r--r--libgcc/config/arc/ieee-754/fixdfsi.S2
-rw-r--r--libgcc/config/arc/ieee-754/fixsfsi.S2
-rw-r--r--libgcc/config/arc/ieee-754/fixunsdfsi.S2
-rw-r--r--libgcc/config/arc/ieee-754/floatsidf.S2
-rw-r--r--libgcc/config/arc/ieee-754/floatsisf.S2
-rw-r--r--libgcc/config/arc/ieee-754/floatunsidf.S2
-rw-r--r--libgcc/config/arc/ieee-754/gedf2.S2
-rw-r--r--libgcc/config/arc/ieee-754/gesf2.S2
-rw-r--r--libgcc/config/arc/ieee-754/gtdf2.S2
-rw-r--r--libgcc/config/arc/ieee-754/gtsf2.S2
-rw-r--r--libgcc/config/arc/ieee-754/muldf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/mulsf3.S2
-rw-r--r--libgcc/config/arc/ieee-754/orddf2.S2
-rw-r--r--libgcc/config/arc/ieee-754/ordsf2.S2
-rw-r--r--libgcc/config/arc/ieee-754/truncdfsf2.S2
-rw-r--r--libgcc/config/arc/ieee-754/uneqdf2.S2
-rw-r--r--libgcc/config/arc/ieee-754/uneqsf2.S2
-rw-r--r--libgcc/config/arc/initfini.c2
-rw-r--r--libgcc/config/arc/lib1funcs.S56
-rw-r--r--libgcc/config/arc/libgcc-excl.ver2
-rw-r--r--libgcc/config/arc/linux-unwind-reg.def2
-rw-r--r--libgcc/config/arc/linux-unwind.h2
-rw-r--r--libgcc/config/arc/t-arc6
-rw-r--r--libgcc/config/arc/t-arc-uClibc2
-rw-r--r--libgcc/config/arm/bpabi-lib.h2
-rw-r--r--libgcc/config/arm/bpabi-v6m.S2
-rw-r--r--libgcc/config/arm/bpabi.S2
-rw-r--r--libgcc/config/arm/bpabi.c2
-rw-r--r--libgcc/config/arm/cmse.c3
-rw-r--r--libgcc/config/arm/cmse_nonsecure_call.S2
-rw-r--r--libgcc/config/arm/crtfastmath.c2
-rw-r--r--libgcc/config/arm/crti.S2
-rw-r--r--libgcc/config/arm/crtn.S2
-rw-r--r--libgcc/config/arm/fp16.c2
-rw-r--r--libgcc/config/arm/freebsd-atomic.c2
-rw-r--r--libgcc/config/arm/ieee754-df.S29
-rw-r--r--libgcc/config/arm/ieee754-sf.S31
-rw-r--r--libgcc/config/arm/lib1funcs.S65
-rw-r--r--libgcc/config/arm/libgcc-bpabi.ver2
-rw-r--r--libgcc/config/arm/libunwind.S2
-rw-r--r--libgcc/config/arm/linux-atomic-64bit.c2
-rw-r--r--libgcc/config/arm/linux-atomic.c57
-rw-r--r--libgcc/config/arm/pr-support.c3
-rw-r--r--libgcc/config/arm/symbian-lib.h2
-rw-r--r--libgcc/config/arm/t-arm2
-rw-r--r--libgcc/config/arm/t-elf16
-rw-r--r--libgcc/config/arm/t-netbsd8
-rw-r--r--libgcc/config/arm/t-netbsd-eabi18
-rw-r--r--libgcc/config/arm/unaligned-funcs.c2
-rw-r--r--libgcc/config/arm/unwind-arm-vxworks.c67
-rw-r--r--libgcc/config/arm/unwind-arm.c3
-rw-r--r--libgcc/config/arm/unwind-arm.h33
-rw-r--r--libgcc/config/avr/avr-lib.h2
-rw-r--r--libgcc/config/avr/lib1funcs-fixed.S2
-rw-r--r--libgcc/config/avr/lib1funcs.S2
-rw-r--r--libgcc/config/avr/lib2funcs.c2
-rw-r--r--libgcc/config/avr/t-avr8
-rw-r--r--libgcc/config/avr/t-avrlibc31
-rw-r--r--libgcc/config/avr/t-copy-libgcc13
-rw-r--r--libgcc/config/bfin/crti.S2
-rw-r--r--libgcc/config/bfin/crtlibid.S2
-rw-r--r--libgcc/config/bfin/crtn.S2
-rw-r--r--libgcc/config/bfin/lib1funcs.S2
-rw-r--r--libgcc/config/bfin/libgcc-glibc.ver2
-rw-r--r--libgcc/config/bfin/linux-unwind.h2
-rw-r--r--libgcc/config/bpf/crti.S0
-rw-r--r--libgcc/config/bpf/crtn.S0
-rw-r--r--libgcc/config/bpf/t-bpf23
-rw-r--r--libgcc/config/c6x/c6x-abi.h2
-rw-r--r--libgcc/config/c6x/crti.S2
-rw-r--r--libgcc/config/c6x/crtn.S2
-rw-r--r--libgcc/config/c6x/eqd.c2
-rw-r--r--libgcc/config/c6x/eqf.c2
-rw-r--r--libgcc/config/c6x/ged.c2
-rw-r--r--libgcc/config/c6x/gef.c2
-rw-r--r--libgcc/config/c6x/gtd.c2
-rw-r--r--libgcc/config/c6x/gtf.c2
-rw-r--r--libgcc/config/c6x/led.c2
-rw-r--r--libgcc/config/c6x/lef.c2
-rw-r--r--libgcc/config/c6x/lib1funcs.S2
-rw-r--r--libgcc/config/c6x/libgcc-eabi.ver2
-rw-r--r--libgcc/config/c6x/libunwind.S2
-rw-r--r--libgcc/config/c6x/ltd.c2
-rw-r--r--libgcc/config/c6x/ltf.c2
-rw-r--r--libgcc/config/c6x/pr-support.c2
-rw-r--r--libgcc/config/c6x/sfp-machine.h2
-rw-r--r--libgcc/config/c6x/unwind-c6x.c2
-rw-r--r--libgcc/config/c6x/unwind-c6x.h2
-rw-r--r--libgcc/config/cr16/crti.S2
-rw-r--r--libgcc/config/cr16/crtlibid.S2
-rw-r--r--libgcc/config/cr16/crtn.S2
-rw-r--r--libgcc/config/cr16/divmodhi3.c2
-rw-r--r--libgcc/config/cr16/lib1funcs.S2
-rw-r--r--libgcc/config/cr16/t-cr162
-rw-r--r--libgcc/config/cr16/t-crtlibid2
-rw-r--r--libgcc/config/cr16/unwind-cr16.c2
-rw-r--r--libgcc/config/cr16/unwind-dw2.h2
-rw-r--r--libgcc/config/cris/arit.c2
-rw-r--r--libgcc/config/cris/mulsi3.S2
-rw-r--r--libgcc/config/cris/sfp-machine.h2
-rw-r--r--libgcc/config/cris/umulsidi3.S2
-rw-r--r--libgcc/config/csky/crti.S140
-rw-r--r--libgcc/config/csky/crtn.S55
-rw-r--r--libgcc/config/csky/lib1funcs.S675
-rw-r--r--libgcc/config/csky/linux-atomic.c299
-rw-r--r--libgcc/config/csky/linux-unwind.h128
-rw-r--r--libgcc/config/csky/t-csky28
-rw-r--r--libgcc/config/csky/t-linux-csky21
-rw-r--r--libgcc/config/darwin-64.c2
-rw-r--r--libgcc/config/darwin-crt-tm.c2
-rw-r--r--libgcc/config/darwin-crt3.c2
-rw-r--r--libgcc/config/darwin10-unwind-find-enc-func.c13
-rw-r--r--libgcc/config/epiphany/crti.S2
-rw-r--r--libgcc/config/epiphany/crtint.S2
-rw-r--r--libgcc/config/epiphany/crtm1reg-r43.S2
-rw-r--r--libgcc/config/epiphany/crtm1reg-r63.S2
-rw-r--r--libgcc/config/epiphany/crtn.S2
-rw-r--r--libgcc/config/epiphany/crtrunc.S2
-rw-r--r--libgcc/config/epiphany/divsi3-float.S2
-rw-r--r--libgcc/config/epiphany/divsi3.S2
-rw-r--r--libgcc/config/epiphany/divsi3.c2
-rw-r--r--libgcc/config/epiphany/epiphany-asm.h2
-rw-r--r--libgcc/config/epiphany/ieee-754/eqsf2.S2
-rw-r--r--libgcc/config/epiphany/ieee-754/fast_div.S2
-rw-r--r--libgcc/config/epiphany/ieee-754/gtesf2.S2
-rw-r--r--libgcc/config/epiphany/ieee-754/ordsf2.S2
-rw-r--r--libgcc/config/epiphany/ieee-754/uneqsf2.S2
-rw-r--r--libgcc/config/epiphany/modsi3-float.S2
-rw-r--r--libgcc/config/epiphany/modsi3.S2
-rw-r--r--libgcc/config/epiphany/modsi3.c2
-rw-r--r--libgcc/config/epiphany/mulsi3.c2
-rw-r--r--libgcc/config/epiphany/t-epiphany2
-rw-r--r--libgcc/config/epiphany/udivsi3-float.S2
-rw-r--r--libgcc/config/epiphany/udivsi3-float.c2
-rw-r--r--libgcc/config/epiphany/udivsi3.S2
-rw-r--r--libgcc/config/epiphany/udivsi3.c2
-rw-r--r--libgcc/config/epiphany/umodsi3-float.S2
-rw-r--r--libgcc/config/epiphany/umodsi3.S2
-rw-r--r--libgcc/config/epiphany/umodsi3.c2
-rw-r--r--libgcc/config/fr30/crti.S2
-rw-r--r--libgcc/config/fr30/crtn.S2
-rw-r--r--libgcc/config/fr30/lib1funcs.S2
-rw-r--r--libgcc/config/frv/cmovd.c2
-rw-r--r--libgcc/config/frv/cmovh.c2
-rw-r--r--libgcc/config/frv/cmovw.c2
-rw-r--r--libgcc/config/frv/elf-lib.h2
-rw-r--r--libgcc/config/frv/frv-abi.h2
-rw-r--r--libgcc/config/frv/frvbegin.c2
-rw-r--r--libgcc/config/frv/frvend.c2
-rw-r--r--libgcc/config/frv/lib1funcs.S2
-rw-r--r--libgcc/config/frv/libgcc-glibc.ver2
-rw-r--r--libgcc/config/ft32/crti.S2
-rw-r--r--libgcc/config/ft32/crtn.S2
-rw-r--r--libgcc/config/ft32/lib1funcs.S2
-rw-r--r--libgcc/config/gcn/crt0.c79
-rw-r--r--libgcc/config/gcn/gthr-gcn.h163
-rw-r--r--libgcc/config/gcn/lib2-divmod-hi.c117
-rw-r--r--libgcc/config/gcn/lib2-divmod.c117
-rw-r--r--libgcc/config/gcn/lib2-gcn.h49
-rw-r--r--libgcc/config/gcn/sfp-machine.h51
-rw-r--r--libgcc/config/gcn/t-amdgcn17
-rw-r--r--libgcc/config/gcn/unwind-gcn.c37
-rw-r--r--libgcc/config/gthr-lynx.h2
-rw-r--r--libgcc/config/gthr-rtems.h2
-rw-r--r--libgcc/config/gthr-vxworks-cond.c83
-rw-r--r--libgcc/config/gthr-vxworks-thread.c349
-rw-r--r--libgcc/config/gthr-vxworks-tls.c (renamed from libgcc/config/vxlib-tls.c)106
-rw-r--r--libgcc/config/gthr-vxworks.c87
-rw-r--r--libgcc/config/gthr-vxworks.h269
-rw-r--r--libgcc/config/h8300/clzhi2.c2
-rw-r--r--libgcc/config/h8300/crti.S2
-rw-r--r--libgcc/config/h8300/crtn.S2
-rw-r--r--libgcc/config/h8300/ctzhi2.c2
-rw-r--r--libgcc/config/h8300/fixunssfsi.c2
-rw-r--r--libgcc/config/h8300/lib1funcs.S2
-rw-r--r--libgcc/config/h8300/parityhi2.c2
-rw-r--r--libgcc/config/h8300/popcounthi2.c2
-rw-r--r--libgcc/config/h8300/sfp-machine.h2
-rw-r--r--libgcc/config/hardfp.c2
-rw-r--r--libgcc/config/i386/32/tf-signs.c2
-rw-r--r--libgcc/config/i386/cpuinfo.c24
-rw-r--r--libgcc/config/i386/cpuinfo.h9
-rw-r--r--libgcc/config/i386/crtfastmath.c2
-rw-r--r--libgcc/config/i386/crti.S2
-rw-r--r--libgcc/config/i386/crtn.S2
-rw-r--r--libgcc/config/i386/crtprec.c4
-rw-r--r--libgcc/config/i386/cygming-crtbegin.c2
-rw-r--r--libgcc/config/i386/cygming-crtend.c2
-rw-r--r--libgcc/config/i386/cygwin.S2
-rw-r--r--libgcc/config/i386/darwin-lib.h2
-rw-r--r--libgcc/config/i386/dragonfly-unwind.h2
-rw-r--r--libgcc/config/i386/elf-lib.h2
-rw-r--r--libgcc/config/i386/enable-execute-stack-mingw32.c2
-rw-r--r--libgcc/config/i386/freebsd-unwind.h2
-rw-r--r--libgcc/config/i386/gthr-win32.c2
-rw-r--r--libgcc/config/i386/gthr-win32.h2
-rw-r--r--libgcc/config/i386/i386-asm.h2
-rw-r--r--libgcc/config/i386/libgcc-bsd.ver2
-rw-r--r--libgcc/config/i386/libgcc-cygming.ver2
-rw-r--r--libgcc/config/i386/libgcc-darwin.10.4.ver2
-rw-r--r--libgcc/config/i386/libgcc-darwin.10.5.ver2
-rw-r--r--libgcc/config/i386/libgcc-glibc.ver2
-rw-r--r--libgcc/config/i386/libgcc-sol2.ver2
-rw-r--r--libgcc/config/i386/linux-unwind.h2
-rw-r--r--libgcc/config/i386/morestack.S2
-rw-r--r--libgcc/config/i386/resms64.h2
-rw-r--r--libgcc/config/i386/resms64f.h2
-rw-r--r--libgcc/config/i386/resms64fx.h2
-rw-r--r--libgcc/config/i386/resms64x.h2
-rw-r--r--libgcc/config/i386/savms64.h2
-rw-r--r--libgcc/config/i386/savms64f.h2
-rw-r--r--libgcc/config/i386/sfp-exceptions.c4
-rw-r--r--libgcc/config/i386/shadow-stack-unwind.h7
-rw-r--r--libgcc/config/i386/sol2-c1.S2
-rw-r--r--libgcc/config/i386/sol2-unwind.h38
-rw-r--r--libgcc/config/i386/value-unwind.h2
-rw-r--r--libgcc/config/i386/w32-unwind.h2
-rw-r--r--libgcc/config/ia64/crtbegin.S6
-rw-r--r--libgcc/config/ia64/crtend.S2
-rw-r--r--libgcc/config/ia64/crtfastmath.c2
-rw-r--r--libgcc/config/ia64/crti.S2
-rw-r--r--libgcc/config/ia64/crtn.S2
-rw-r--r--libgcc/config/ia64/fde-glibc.c2
-rw-r--r--libgcc/config/ia64/fde-vms.c2
-rw-r--r--libgcc/config/ia64/lib1funcs.S2
-rw-r--r--libgcc/config/ia64/libgcc-glibc.ver2
-rw-r--r--libgcc/config/ia64/libgcc-ia64.ver2
-rw-r--r--libgcc/config/ia64/linux-unwind.h2
-rw-r--r--libgcc/config/ia64/quadlib.c2
-rw-r--r--libgcc/config/ia64/sfp-exceptions.c2
-rw-r--r--libgcc/config/ia64/tf-signs.c2
-rw-r--r--libgcc/config/ia64/unwind-ia64.c2
-rw-r--r--libgcc/config/ia64/unwind-ia64.h2
-rw-r--r--libgcc/config/ia64/vms-crtinit.S2
-rw-r--r--libgcc/config/ia64/vms-unwind.h2
-rw-r--r--libgcc/config/iq2000/lib2funcs.c2
-rw-r--r--libgcc/config/libbid/ChangeLog2
-rw-r--r--libgcc/config/libbid/_addsub_dd.c2
-rw-r--r--libgcc/config/libbid/_addsub_sd.c2
-rw-r--r--libgcc/config/libbid/_addsub_td.c2
-rw-r--r--libgcc/config/libbid/_dd_to_df.c2
-rw-r--r--libgcc/config/libbid/_dd_to_di.c2
-rw-r--r--libgcc/config/libbid/_dd_to_sd.c2
-rw-r--r--libgcc/config/libbid/_dd_to_sf.c2
-rw-r--r--libgcc/config/libbid/_dd_to_si.c2
-rw-r--r--libgcc/config/libbid/_dd_to_td.c2
-rw-r--r--libgcc/config/libbid/_dd_to_tf.c2
-rw-r--r--libgcc/config/libbid/_dd_to_udi.c2
-rw-r--r--libgcc/config/libbid/_dd_to_usi.c2
-rw-r--r--libgcc/config/libbid/_dd_to_xf.c2
-rw-r--r--libgcc/config/libbid/_df_to_dd.c2
-rw-r--r--libgcc/config/libbid/_df_to_sd.c2
-rw-r--r--libgcc/config/libbid/_df_to_td.c2
-rw-r--r--libgcc/config/libbid/_di_to_dd.c2
-rw-r--r--libgcc/config/libbid/_di_to_sd.c2
-rw-r--r--libgcc/config/libbid/_di_to_td.c2
-rw-r--r--libgcc/config/libbid/_div_dd.c2
-rw-r--r--libgcc/config/libbid/_div_sd.c2
-rw-r--r--libgcc/config/libbid/_div_td.c2
-rw-r--r--libgcc/config/libbid/_eq_dd.c2
-rw-r--r--libgcc/config/libbid/_eq_sd.c2
-rw-r--r--libgcc/config/libbid/_eq_td.c2
-rw-r--r--libgcc/config/libbid/_ge_dd.c2
-rw-r--r--libgcc/config/libbid/_ge_sd.c2
-rw-r--r--libgcc/config/libbid/_ge_td.c2
-rw-r--r--libgcc/config/libbid/_gt_dd.c2
-rw-r--r--libgcc/config/libbid/_gt_sd.c2
-rw-r--r--libgcc/config/libbid/_gt_td.c2
-rw-r--r--libgcc/config/libbid/_isinfd128.c2
-rw-r--r--libgcc/config/libbid/_isinfd32.c2
-rw-r--r--libgcc/config/libbid/_isinfd64.c2
-rw-r--r--libgcc/config/libbid/_le_dd.c2
-rw-r--r--libgcc/config/libbid/_le_sd.c2
-rw-r--r--libgcc/config/libbid/_le_td.c2
-rw-r--r--libgcc/config/libbid/_lt_dd.c2
-rw-r--r--libgcc/config/libbid/_lt_sd.c2
-rw-r--r--libgcc/config/libbid/_lt_td.c2
-rw-r--r--libgcc/config/libbid/_mul_dd.c2
-rw-r--r--libgcc/config/libbid/_mul_sd.c2
-rw-r--r--libgcc/config/libbid/_mul_td.c2
-rw-r--r--libgcc/config/libbid/_ne_dd.c2
-rw-r--r--libgcc/config/libbid/_ne_sd.c2
-rw-r--r--libgcc/config/libbid/_ne_td.c2
-rw-r--r--libgcc/config/libbid/_sd_to_dd.c2
-rw-r--r--libgcc/config/libbid/_sd_to_df.c2
-rw-r--r--libgcc/config/libbid/_sd_to_di.c2
-rw-r--r--libgcc/config/libbid/_sd_to_sf.c2
-rw-r--r--libgcc/config/libbid/_sd_to_si.c2
-rw-r--r--libgcc/config/libbid/_sd_to_td.c2
-rw-r--r--libgcc/config/libbid/_sd_to_tf.c2
-rw-r--r--libgcc/config/libbid/_sd_to_udi.c2
-rw-r--r--libgcc/config/libbid/_sd_to_usi.c2
-rw-r--r--libgcc/config/libbid/_sd_to_xf.c2
-rw-r--r--libgcc/config/libbid/_sf_to_dd.c2
-rw-r--r--libgcc/config/libbid/_sf_to_sd.c2
-rw-r--r--libgcc/config/libbid/_sf_to_td.c2
-rw-r--r--libgcc/config/libbid/_si_to_dd.c2
-rw-r--r--libgcc/config/libbid/_si_to_sd.c2
-rw-r--r--libgcc/config/libbid/_si_to_td.c2
-rw-r--r--libgcc/config/libbid/_td_to_dd.c2
-rw-r--r--libgcc/config/libbid/_td_to_df.c2
-rw-r--r--libgcc/config/libbid/_td_to_di.c2
-rw-r--r--libgcc/config/libbid/_td_to_sd.c2
-rw-r--r--libgcc/config/libbid/_td_to_sf.c2
-rw-r--r--libgcc/config/libbid/_td_to_si.c2
-rw-r--r--libgcc/config/libbid/_td_to_tf.c2
-rw-r--r--libgcc/config/libbid/_td_to_udi.c2
-rw-r--r--libgcc/config/libbid/_td_to_usi.c2
-rw-r--r--libgcc/config/libbid/_td_to_xf.c2
-rw-r--r--libgcc/config/libbid/_tf_to_dd.c2
-rw-r--r--libgcc/config/libbid/_tf_to_sd.c2
-rw-r--r--libgcc/config/libbid/_tf_to_td.c2
-rw-r--r--libgcc/config/libbid/_udi_to_dd.c2
-rw-r--r--libgcc/config/libbid/_udi_to_sd.c2
-rw-r--r--libgcc/config/libbid/_udi_to_td.c2
-rw-r--r--libgcc/config/libbid/_unord_dd.c2
-rw-r--r--libgcc/config/libbid/_unord_sd.c2
-rw-r--r--libgcc/config/libbid/_unord_td.c2
-rw-r--r--libgcc/config/libbid/_usi_to_dd.c2
-rw-r--r--libgcc/config/libbid/_usi_to_sd.c2
-rw-r--r--libgcc/config/libbid/_usi_to_td.c2
-rw-r--r--libgcc/config/libbid/_xf_to_dd.c2
-rw-r--r--libgcc/config/libbid/_xf_to_sd.c2
-rw-r--r--libgcc/config/libbid/_xf_to_td.c2
-rw-r--r--libgcc/config/libbid/bid128.c2
-rw-r--r--libgcc/config/libbid/bid128_2_str.h2
-rw-r--r--libgcc/config/libbid/bid128_2_str_macros.h2
-rw-r--r--libgcc/config/libbid/bid128_2_str_tables.c2
-rw-r--r--libgcc/config/libbid/bid128_add.c2
-rw-r--r--libgcc/config/libbid/bid128_compare.c2
-rw-r--r--libgcc/config/libbid/bid128_div.c2
-rw-r--r--libgcc/config/libbid/bid128_fma.c2
-rw-r--r--libgcc/config/libbid/bid128_logb.c2
-rw-r--r--libgcc/config/libbid/bid128_minmax.c2
-rw-r--r--libgcc/config/libbid/bid128_mul.c2
-rw-r--r--libgcc/config/libbid/bid128_next.c2
-rw-r--r--libgcc/config/libbid/bid128_noncomp.c2
-rw-r--r--libgcc/config/libbid/bid128_quantize.c2
-rw-r--r--libgcc/config/libbid/bid128_rem.c2
-rw-r--r--libgcc/config/libbid/bid128_round_integral.c2
-rw-r--r--libgcc/config/libbid/bid128_scalb.c2
-rw-r--r--libgcc/config/libbid/bid128_sqrt.c2
-rw-r--r--libgcc/config/libbid/bid128_string.c2
-rw-r--r--libgcc/config/libbid/bid128_to_int16.c2
-rw-r--r--libgcc/config/libbid/bid128_to_int32.c2
-rw-r--r--libgcc/config/libbid/bid128_to_int64.c2
-rw-r--r--libgcc/config/libbid/bid128_to_int8.c2
-rw-r--r--libgcc/config/libbid/bid128_to_uint16.c2
-rw-r--r--libgcc/config/libbid/bid128_to_uint32.c2
-rw-r--r--libgcc/config/libbid/bid128_to_uint64.c2
-rw-r--r--libgcc/config/libbid/bid128_to_uint8.c2
-rw-r--r--libgcc/config/libbid/bid32_to_bid128.c2
-rw-r--r--libgcc/config/libbid/bid32_to_bid64.c2
-rw-r--r--libgcc/config/libbid/bid64_add.c2
-rw-r--r--libgcc/config/libbid/bid64_compare.c2
-rw-r--r--libgcc/config/libbid/bid64_div.c2
-rw-r--r--libgcc/config/libbid/bid64_fma.c2
-rw-r--r--libgcc/config/libbid/bid64_logb.c2
-rw-r--r--libgcc/config/libbid/bid64_minmax.c2
-rw-r--r--libgcc/config/libbid/bid64_mul.c2
-rw-r--r--libgcc/config/libbid/bid64_next.c2
-rw-r--r--libgcc/config/libbid/bid64_noncomp.c2
-rw-r--r--libgcc/config/libbid/bid64_quantize.c2
-rw-r--r--libgcc/config/libbid/bid64_rem.c2
-rw-r--r--libgcc/config/libbid/bid64_round_integral.c2
-rw-r--r--libgcc/config/libbid/bid64_scalb.c2
-rw-r--r--libgcc/config/libbid/bid64_sqrt.c2
-rw-r--r--libgcc/config/libbid/bid64_string.c2
-rw-r--r--libgcc/config/libbid/bid64_to_bid128.c2
-rw-r--r--libgcc/config/libbid/bid64_to_int16.c2
-rw-r--r--libgcc/config/libbid/bid64_to_int32.c2
-rw-r--r--libgcc/config/libbid/bid64_to_int64.c2
-rw-r--r--libgcc/config/libbid/bid64_to_int8.c2
-rw-r--r--libgcc/config/libbid/bid64_to_uint16.c2
-rw-r--r--libgcc/config/libbid/bid64_to_uint32.c2
-rw-r--r--libgcc/config/libbid/bid64_to_uint64.c2
-rw-r--r--libgcc/config/libbid/bid64_to_uint8.c2
-rw-r--r--libgcc/config/libbid/bid_b2d.h2
-rw-r--r--libgcc/config/libbid/bid_binarydecimal.c2
-rw-r--r--libgcc/config/libbid/bid_conf.h2
-rw-r--r--libgcc/config/libbid/bid_convert_data.c2
-rw-r--r--libgcc/config/libbid/bid_decimal_data.c2
-rw-r--r--libgcc/config/libbid/bid_decimal_globals.c2
-rw-r--r--libgcc/config/libbid/bid_div_macros.h2
-rw-r--r--libgcc/config/libbid/bid_dpd.c2
-rw-r--r--libgcc/config/libbid/bid_flag_operations.c2
-rw-r--r--libgcc/config/libbid/bid_from_int.c2
-rw-r--r--libgcc/config/libbid/bid_functions.h2
-rw-r--r--libgcc/config/libbid/bid_gcc_intrinsics.h2
-rw-r--r--libgcc/config/libbid/bid_inline_add.h2
-rw-r--r--libgcc/config/libbid/bid_internal.h2
-rw-r--r--libgcc/config/libbid/bid_round.c2
-rw-r--r--libgcc/config/libbid/bid_sqrt_macros.h2
-rw-r--r--libgcc/config/libgcc-glibc.ver2
-rw-r--r--libgcc/config/lm32/_ashlsi3.S2
-rw-r--r--libgcc/config/lm32/_ashrsi3.S2
-rw-r--r--libgcc/config/lm32/_divsi3.c2
-rw-r--r--libgcc/config/lm32/_lshrsi3.S2
-rw-r--r--libgcc/config/lm32/_modsi3.c2
-rw-r--r--libgcc/config/lm32/_mulsi3.c2
-rw-r--r--libgcc/config/lm32/_udivmodsi4.c2
-rw-r--r--libgcc/config/lm32/_udivsi3.c2
-rw-r--r--libgcc/config/lm32/_umodsi3.c2
-rw-r--r--libgcc/config/lm32/crti.S2
-rw-r--r--libgcc/config/lm32/crtn.S2
-rw-r--r--libgcc/config/lm32/libgcc_lm32.h2
-rw-r--r--libgcc/config/m32c/lib1funcs.S2
-rw-r--r--libgcc/config/m32c/lib2funcs.c2
-rw-r--r--libgcc/config/m32c/trapv.c2
-rw-r--r--libgcc/config/m32r/initfini.c2
-rw-r--r--libgcc/config/m32r/libgcc-glibc.ver2
-rw-r--r--libgcc/config/m68k/crti.S2
-rw-r--r--libgcc/config/m68k/crtn.S2
-rw-r--r--libgcc/config/m68k/lb1sf68.S2
-rw-r--r--libgcc/config/m68k/linux-atomic.c2
-rw-r--r--libgcc/config/m68k/linux-unwind.h4
-rw-r--r--libgcc/config/mcore/crti.S2
-rw-r--r--libgcc/config/mcore/crtn.S2
-rw-r--r--libgcc/config/mcore/lib1funcs.S2
-rw-r--r--libgcc/config/microblaze/crti.S2
-rw-r--r--libgcc/config/microblaze/crtn.S2
-rw-r--r--libgcc/config/microblaze/divsi3.S2
-rw-r--r--libgcc/config/microblaze/divsi3_table.c2
-rw-r--r--libgcc/config/microblaze/moddi3.S2
-rw-r--r--libgcc/config/microblaze/modsi3.S2
-rw-r--r--libgcc/config/microblaze/muldi3_hard.S2
-rw-r--r--libgcc/config/microblaze/mulsi3.S2
-rw-r--r--libgcc/config/microblaze/stack_overflow_exit.S2
-rw-r--r--libgcc/config/microblaze/udivsi3.S2
-rw-r--r--libgcc/config/microblaze/umodsi3.S2
-rw-r--r--libgcc/config/mips/crtfastmath.c2
-rw-r--r--libgcc/config/mips/crti.S2
-rw-r--r--libgcc/config/mips/crtn.S2
-rw-r--r--libgcc/config/mips/gthr-mipssde.h2
-rw-r--r--libgcc/config/mips/lib2funcs.c2
-rw-r--r--libgcc/config/mips/libgcc-mips16.ver2
-rw-r--r--libgcc/config/mips/linux-unwind.h2
-rw-r--r--libgcc/config/mips/mips16.S2
-rw-r--r--libgcc/config/mips/sfp-machine.h2
-rw-r--r--libgcc/config/mips/t-mips162
-rw-r--r--libgcc/config/mips/vr4120-div.S2
-rw-r--r--libgcc/config/mmix/crti.S2
-rw-r--r--libgcc/config/mmix/crtn.S2
-rw-r--r--libgcc/config/moxie/crti.S2
-rw-r--r--libgcc/config/moxie/crtn.S2
-rw-r--r--libgcc/config/msp430/cmpsi2.S2
-rw-r--r--libgcc/config/msp430/epilogue.S2
-rw-r--r--libgcc/config/msp430/lib2bitcountHI.c2
-rw-r--r--libgcc/config/msp430/lib2divHI.c2
-rw-r--r--libgcc/config/msp430/lib2divQI.c2
-rw-r--r--libgcc/config/msp430/lib2divSI.c2
-rw-r--r--libgcc/config/msp430/lib2hw_mul.S172
-rw-r--r--libgcc/config/msp430/lib2mul.c5
-rw-r--r--libgcc/config/msp430/lib2shift.c2
-rw-r--r--libgcc/config/msp430/msp430-divmod.h2
-rw-r--r--libgcc/config/msp430/msp430-mul.h2
-rw-r--r--libgcc/config/msp430/slli.S43
-rw-r--r--libgcc/config/msp430/srai.S44
-rw-r--r--libgcc/config/msp430/srli.S45
-rw-r--r--libgcc/config/msp430/t-msp4302
-rw-r--r--libgcc/config/nds32/crtzero.S2
-rw-r--r--libgcc/config/nds32/initfini.c86
-rw-r--r--libgcc/config/nds32/isr-library/adj_intr_lvl.inc15
-rw-r--r--libgcc/config/nds32/isr-library/excp_isr.S57
-rw-r--r--libgcc/config/nds32/isr-library/excp_isr_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/intr_isr.S69
-rw-r--r--libgcc/config/nds32/isr-library/intr_isr_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid00.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid01.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid02.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid03.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid04.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid05.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid06.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid07.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid08.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid09.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid10.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid11.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid12.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid13.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid14.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid15.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid16.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid17.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid18.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid19.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid20.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid21.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid22.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid23.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid24.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid25.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid26.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid27.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid28.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid29.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid30.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid31.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid32.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid33.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid34.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid35.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid36.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid37.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid38.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid39.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid40.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid41.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid42.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid43.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid44.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid45.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid46.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid47.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid48.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid49.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid50.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid51.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid52.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid53.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid54.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid55.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid56.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid57.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid58.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid59.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid60.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid61.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid62.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid63.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid64.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid65.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid66.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid67.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid68.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid69.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid70.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid71.S2
-rw-r--r--libgcc/config/nds32/isr-library/jmptbl_vid72.S2
-rw-r--r--libgcc/config/nds32/isr-library/nmih.S2
-rw-r--r--libgcc/config/nds32/isr-library/reset.S83
-rw-r--r--libgcc/config/nds32/isr-library/reset_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/restore_all.inc12
-rw-r--r--libgcc/config/nds32/isr-library/restore_fpu_regs.inc2
-rw-r--r--libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc2
-rw-r--r--libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc2
-rw-r--r--libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc2
-rw-r--r--libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc2
-rw-r--r--libgcc/config/nds32/isr-library/restore_mac_regs.inc4
-rw-r--r--libgcc/config/nds32/isr-library/restore_partial.inc14
-rw-r--r--libgcc/config/nds32/isr-library/restore_usr_regs.inc42
-rw-r--r--libgcc/config/nds32/isr-library/save_all.inc45
-rw-r--r--libgcc/config/nds32/isr-library/save_fpu_regs.inc2
-rw-r--r--libgcc/config/nds32/isr-library/save_fpu_regs_00.inc2
-rw-r--r--libgcc/config/nds32/isr-library/save_fpu_regs_01.inc2
-rw-r--r--libgcc/config/nds32/isr-library/save_fpu_regs_02.inc2
-rw-r--r--libgcc/config/nds32/isr-library/save_fpu_regs_03.inc2
-rw-r--r--libgcc/config/nds32/isr-library/save_mac_regs.inc4
-rw-r--r--libgcc/config/nds32/isr-library/save_partial.inc48
-rw-r--r--libgcc/config/nds32/isr-library/save_usr_regs.inc44
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid00.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid00_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid01.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid01_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid02.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid02_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid03.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid03_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid04.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid04_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid05.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid05_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid06.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid06_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid07.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid07_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid08.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid08_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid09.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid09_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid10.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid10_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid11.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid11_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid12.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid12_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid13.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid13_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid14.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid14_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid15.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid15_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid16.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid16_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid17.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid17_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid18.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid18_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid19.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid19_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid20.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid20_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid21.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid21_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid22.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid22_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid23.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid23_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid24.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid24_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid25.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid25_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid26.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid26_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid27.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid27_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid28.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid28_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid29.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid29_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid30.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid30_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid31.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid31_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid32.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid32_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid33.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid33_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid34.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid34_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid35.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid35_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid36.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid36_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid37.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid37_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid38.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid38_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid39.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid39_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid40.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid40_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid41.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid41_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid42.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid42_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid43.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid43_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid44.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid44_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid45.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid45_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid46.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid46_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid47.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid47_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid48.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid48_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid49.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid49_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid50.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid50_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid51.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid51_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid52.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid52_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid53.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid53_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid54.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid54_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid55.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid55_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid56.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid56_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid57.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid57_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid58.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid58_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid59.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid59_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid60.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid60_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid61.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid61_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid62.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid62_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid63.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid63_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid64.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid64_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid65.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid65_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid66.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid66_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid67.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid67_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid68.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid68_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid69.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid69_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid70.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid70_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid71.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid71_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid72.S9
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid72_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/wrh.S2
-rw-r--r--libgcc/config/nds32/lib1asmsrc-mculib.S2
-rw-r--r--libgcc/config/nds32/lib1asmsrc-newlib.S2
-rw-r--r--libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c2
-rw-r--r--libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c2
-rw-r--r--libgcc/config/nds32/linux-atomic.c2
-rw-r--r--libgcc/config/nds32/linux-unwind.h27
-rw-r--r--libgcc/config/nds32/sfp-machine.h2
-rw-r--r--libgcc/config/nds32/t-nds322
-rw-r--r--libgcc/config/nds32/t-nds32-glibc34
-rw-r--r--libgcc/config/nds32/t-nds32-isr114
-rw-r--r--libgcc/config/nds32/t-nds32-mculib2
-rw-r--r--libgcc/config/nds32/t-nds32-newlib2
-rw-r--r--libgcc/config/nios2/crti.S2
-rw-r--r--libgcc/config/nios2/crtn.S2
-rw-r--r--libgcc/config/nios2/lib2-divmod-hi.c2
-rw-r--r--libgcc/config/nios2/lib2-divmod.c2
-rw-r--r--libgcc/config/nios2/lib2-divtable.c2
-rw-r--r--libgcc/config/nios2/lib2-mul.c2
-rw-r--r--libgcc/config/nios2/lib2-nios2.h2
-rw-r--r--libgcc/config/nios2/linux-atomic.c2
-rw-r--r--libgcc/config/nios2/linux-unwind.h2
-rw-r--r--libgcc/config/nios2/sfp-machine.h2
-rw-r--r--libgcc/config/nios2/tramp.c2
-rw-r--r--libgcc/config/nvptx/crt0.c6
-rw-r--r--libgcc/config/nvptx/mgomp.c2
-rw-r--r--libgcc/config/nvptx/nvptx-malloc.h2
-rw-r--r--libgcc/config/nvptx/reduction.c2
-rw-r--r--libgcc/config/or1k/lib1funcs.S222
-rw-r--r--libgcc/config/or1k/linux-unwind.h87
-rw-r--r--libgcc/config/or1k/sfp-machine.h54
-rw-r--r--libgcc/config/or1k/t-or1k22
-rw-r--r--libgcc/config/pa/fptr.c23
-rw-r--r--libgcc/config/pa/gthr-dce.h2
-rw-r--r--libgcc/config/pa/hpux-unwind.h2
-rw-r--r--libgcc/config/pa/lib2funcs.S14
-rw-r--r--libgcc/config/pa/linux-atomic.c204
-rw-r--r--libgcc/config/pa/linux-unwind.h4
-rw-r--r--libgcc/config/pa/milli64.S25
-rw-r--r--libgcc/config/pa/pa64-hpux-lib.h2
-rw-r--r--libgcc/config/pa/quadlib.c2
-rw-r--r--libgcc/config/pa/stublib.c6
-rw-r--r--libgcc/config/pa/t-netbsd9
-rw-r--r--libgcc/config/pa/t-slibgcc-hpux2
-rw-r--r--libgcc/config/pa/t-stublib6
-rw-r--r--libgcc/config/pdp11/t-pdp118
-rw-r--r--libgcc/config/pru/asri.c33
-rw-r--r--libgcc/config/pru/eqd.c45
-rw-r--r--libgcc/config/pru/eqf.c45
-rw-r--r--libgcc/config/pru/ged.c45
-rw-r--r--libgcc/config/pru/gef.c45
-rw-r--r--libgcc/config/pru/gtd.c45
-rw-r--r--libgcc/config/pru/gtf.c45
-rw-r--r--libgcc/config/pru/led.c45
-rw-r--r--libgcc/config/pru/lef.c45
-rw-r--r--libgcc/config/pru/lib2bitcountHI.c43
-rw-r--r--libgcc/config/pru/lib2divHI.c42
-rw-r--r--libgcc/config/pru/lib2divQI.c42
-rw-r--r--libgcc/config/pru/lib2divSI.c48
-rw-r--r--libgcc/config/pru/libgcc-eabi.ver88
-rw-r--r--libgcc/config/pru/ltd.c45
-rw-r--r--libgcc/config/pru/ltf.c45
-rw-r--r--libgcc/config/pru/mpyll.S57
-rw-r--r--libgcc/config/pru/pru-abi.h109
-rw-r--r--libgcc/config/pru/pru-asm.h35
-rw-r--r--libgcc/config/pru/pru-divmod.h117
-rw-r--r--libgcc/config/pru/sfp-machine.h125
-rw-r--r--libgcc/config/pru/t-pru50
-rw-r--r--libgcc/config/riscv/atomic.c2
-rw-r--r--libgcc/config/riscv/div.S2
-rw-r--r--libgcc/config/riscv/linux-unwind.h2
-rw-r--r--libgcc/config/riscv/muldi3.S2
-rw-r--r--libgcc/config/riscv/multi3.c2
-rw-r--r--libgcc/config/riscv/riscv-asm.h2
-rw-r--r--libgcc/config/riscv/save-restore.S2
-rw-r--r--libgcc/config/riscv/sfp-machine.h2
-rw-r--r--libgcc/config/riscv/t-softfp3217
-rw-r--r--libgcc/config/rl78/adddi3.S2
-rw-r--r--libgcc/config/rl78/anddi3.S2
-rw-r--r--libgcc/config/rl78/bit-count.S2
-rw-r--r--libgcc/config/rl78/cmpsi2.S2
-rw-r--r--libgcc/config/rl78/divmodhi.S2
-rw-r--r--libgcc/config/rl78/divmodqi.S2
-rw-r--r--libgcc/config/rl78/divmodsi.S2
-rw-r--r--libgcc/config/rl78/lib2div.c2
-rw-r--r--libgcc/config/rl78/lib2mul.c2
-rw-r--r--libgcc/config/rl78/lib2shift.c2
-rw-r--r--libgcc/config/rl78/lshrsi3.S2
-rw-r--r--libgcc/config/rl78/mulsi3.S2
-rw-r--r--libgcc/config/rl78/rl78-divmod.h2
-rw-r--r--libgcc/config/rl78/rl78-mul.h2
-rw-r--r--libgcc/config/rl78/signbit.S2
-rw-r--r--libgcc/config/rl78/smaxdi3.S2
-rw-r--r--libgcc/config/rl78/smindi3.S2
-rw-r--r--libgcc/config/rl78/subdi3.S2
-rw-r--r--libgcc/config/rl78/t-rl782
-rw-r--r--libgcc/config/rl78/trampoline.S2
-rw-r--r--libgcc/config/rl78/umaxdi3.S2
-rw-r--r--libgcc/config/rl78/umindi3.S2
-rw-r--r--libgcc/config/rs6000/_divkc3.c2
-rw-r--r--libgcc/config/rs6000/_mulkc3.c2
-rw-r--r--libgcc/config/rs6000/_powikf2.c2
-rw-r--r--libgcc/config/rs6000/aix-unwind.h30
-rw-r--r--libgcc/config/rs6000/atexit.c2
-rw-r--r--libgcc/config/rs6000/crtcxa.c2
-rw-r--r--libgcc/config/rs6000/crtdbase.S2
-rw-r--r--libgcc/config/rs6000/crtresfpr.S2
-rw-r--r--libgcc/config/rs6000/crtresgpr.S2
-rw-r--r--libgcc/config/rs6000/crtrestvr.S2
-rw-r--r--libgcc/config/rs6000/crtresxfpr.S2
-rw-r--r--libgcc/config/rs6000/crtresxgpr.S2
-rw-r--r--libgcc/config/rs6000/crtsavevr.S2
-rw-r--r--libgcc/config/rs6000/crtsavfpr.S2
-rw-r--r--libgcc/config/rs6000/crtsavgpr.S2
-rw-r--r--libgcc/config/rs6000/cxa_atexit.c2
-rw-r--r--libgcc/config/rs6000/cxa_finalize.c2
-rw-r--r--libgcc/config/rs6000/darwin-asm.h2
-rw-r--r--libgcc/config/rs6000/darwin-crt2.c2
-rw-r--r--libgcc/config/rs6000/darwin-fallback.c2
-rw-r--r--libgcc/config/rs6000/darwin-fpsave.S2
-rw-r--r--libgcc/config/rs6000/darwin-gpsave.S2
-rw-r--r--libgcc/config/rs6000/darwin-tramp.S2
-rw-r--r--libgcc/config/rs6000/darwin-unwind.h2
-rw-r--r--libgcc/config/rs6000/darwin-vecsave.S10
-rw-r--r--libgcc/config/rs6000/darwin-world.S2
-rw-r--r--libgcc/config/rs6000/e500crtres32gpr.S2
-rw-r--r--libgcc/config/rs6000/e500crtres64gpr.S2
-rw-r--r--libgcc/config/rs6000/e500crtres64gprctr.S2
-rw-r--r--libgcc/config/rs6000/e500crtrest32gpr.S2
-rw-r--r--libgcc/config/rs6000/e500crtrest64gpr.S2
-rw-r--r--libgcc/config/rs6000/e500crtresx32gpr.S2
-rw-r--r--libgcc/config/rs6000/e500crtresx64gpr.S2
-rw-r--r--libgcc/config/rs6000/e500crtsav32gpr.S2
-rw-r--r--libgcc/config/rs6000/e500crtsav64gpr.S2
-rw-r--r--libgcc/config/rs6000/e500crtsav64gprctr.S2
-rw-r--r--libgcc/config/rs6000/e500crtsavg32gpr.S2
-rw-r--r--libgcc/config/rs6000/e500crtsavg64gpr.S2
-rw-r--r--libgcc/config/rs6000/e500crtsavg64gprctr.S2
-rw-r--r--libgcc/config/rs6000/eabi-ci.S2
-rw-r--r--libgcc/config/rs6000/eabi-cn.S2
-rw-r--r--libgcc/config/rs6000/eabi.S2
-rw-r--r--libgcc/config/rs6000/exit.h2
-rw-r--r--libgcc/config/rs6000/extendkftf2-sw.c2
-rw-r--r--libgcc/config/rs6000/fixkfti.c2
-rw-r--r--libgcc/config/rs6000/fixunskfti.c2
-rw-r--r--libgcc/config/rs6000/float128-hw.c2
-rw-r--r--libgcc/config/rs6000/float128-ifunc.c2
-rw-r--r--libgcc/config/rs6000/floattikf.c2
-rw-r--r--libgcc/config/rs6000/floatuntikf.c2
-rw-r--r--libgcc/config/rs6000/freebsd-unwind.h2
-rw-r--r--libgcc/config/rs6000/gthr-aix.h2
-rw-r--r--libgcc/config/rs6000/ibm-ldouble-format2
-rw-r--r--libgcc/config/rs6000/ibm-ldouble.c9
-rw-r--r--libgcc/config/rs6000/libgcc-darwin.10.4.ver2
-rw-r--r--libgcc/config/rs6000/libgcc-darwin.10.5.ver2
-rw-r--r--libgcc/config/rs6000/libgcc-glibc.ver2
-rw-r--r--libgcc/config/rs6000/linux-unwind.h2
-rw-r--r--libgcc/config/rs6000/morestack.S6
-rw-r--r--libgcc/config/rs6000/on_exit.c2
-rw-r--r--libgcc/config/rs6000/ppc64-fp.c2
-rw-r--r--libgcc/config/rs6000/quad-float128.h2
-rw-r--r--libgcc/config/rs6000/sfp-exceptions.c2
-rw-r--r--libgcc/config/rs6000/sol-ci.S2
-rw-r--r--libgcc/config/rs6000/sol-cn.S2
-rw-r--r--libgcc/config/rs6000/t-darwin59
-rw-r--r--libgcc/config/rs6000/t-darwin646
-rw-r--r--libgcc/config/rs6000/t-e500v1-fp2
-rw-r--r--libgcc/config/rs6000/t-e500v2-fp2
-rw-r--r--libgcc/config/rs6000/t-freebsd2
-rw-r--r--libgcc/config/rs6000/t-slibgcc-aix2
-rw-r--r--libgcc/config/rs6000/tramp.S10
-rw-r--r--libgcc/config/rs6000/trunctfkf2-sw.c2
-rw-r--r--libgcc/config/rx/rx-abi-functions.c2
-rw-r--r--libgcc/config/rx/rx-abi.h2
-rw-r--r--libgcc/config/rx/t-rx2
-rw-r--r--libgcc/config/s390/32/_fixdfdi.c2
-rw-r--r--libgcc/config/s390/32/_fixsfdi.c2
-rw-r--r--libgcc/config/s390/32/_fixtfdi.c2
-rw-r--r--libgcc/config/s390/32/_fixunsdfdi.c2
-rw-r--r--libgcc/config/s390/32/_fixunssfdi.c2
-rw-r--r--libgcc/config/s390/32/_fixunstfdi.c2
-rw-r--r--libgcc/config/s390/gthr-tpf.h2
-rw-r--r--libgcc/config/s390/libgcc-glibc.ver2
-rw-r--r--libgcc/config/s390/linux-unwind.h2
-rw-r--r--libgcc/config/s390/morestack.S2
-rw-r--r--libgcc/config/s390/tpf-unwind.h2
-rw-r--r--libgcc/config/score/crti.S2
-rw-r--r--libgcc/config/score/crtn.S2
-rw-r--r--libgcc/config/sh/crt.h2
-rw-r--r--libgcc/config/sh/crt1.S2
-rw-r--r--libgcc/config/sh/crti.S2
-rw-r--r--libgcc/config/sh/crtn.S2
-rw-r--r--libgcc/config/sh/lib1funcs-4-300.S2
-rw-r--r--libgcc/config/sh/lib1funcs-Os-4-200.S2
-rw-r--r--libgcc/config/sh/lib1funcs.S2
-rw-r--r--libgcc/config/sh/lib1funcs.h2
-rw-r--r--libgcc/config/sh/libgcc-glibc.ver2
-rw-r--r--libgcc/config/sh/linux-atomic.c2
-rw-r--r--libgcc/config/sh/linux-unwind.h2
-rw-r--r--libgcc/config/sh/t-sh2
-rw-r--r--libgcc/config/sol2/crtp.c2
-rw-r--r--libgcc/config/sol2/crtpg.c2
-rw-r--r--libgcc/config/sol2/t-sol22
-rw-r--r--libgcc/config/sparc/crtfastmath.c2
-rw-r--r--libgcc/config/sparc/crti.S2
-rw-r--r--libgcc/config/sparc/crtn.S2
-rw-r--r--libgcc/config/sparc/libgcc-glibc.ver2
-rw-r--r--libgcc/config/sparc/linux-unwind.h2
-rw-r--r--libgcc/config/sparc/sol2-c1.S2
-rw-r--r--libgcc/config/sparc/sol2-unwind.h94
-rw-r--r--libgcc/config/spu/cachemgr.c438
-rw-r--r--libgcc/config/spu/divmodti4.c188
-rw-r--r--libgcc/config/spu/divv2df3.c195
-rw-r--r--libgcc/config/spu/float_disf.c31
-rw-r--r--libgcc/config/spu/float_unsdidf.c54
-rw-r--r--libgcc/config/spu/float_unsdisf.c31
-rw-r--r--libgcc/config/spu/float_unssidf.c45
-rw-r--r--libgcc/config/spu/mfc_multi_tag_release.c72
-rw-r--r--libgcc/config/spu/mfc_multi_tag_reserve.c84
-rw-r--r--libgcc/config/spu/mfc_tag_release.c59
-rw-r--r--libgcc/config/spu/mfc_tag_reserve.c51
-rw-r--r--libgcc/config/spu/multi3.c119
-rw-r--r--libgcc/config/spu/t-elf59
-rw-r--r--libgcc/config/stormy16/lib2funcs.c2
-rw-r--r--libgcc/config/stormy16/t-stormy162
-rw-r--r--libgcc/config/t-darwin18
-rw-r--r--libgcc/config/t-gthr-noweak2
-rw-r--r--libgcc/config/t-gthr-vxworks5
-rw-r--r--libgcc/config/t-gthr-vxworksae7
-rw-r--r--libgcc/config/t-hardfp2
-rw-r--r--libgcc/config/t-hardfp-sfdf2
-rw-r--r--libgcc/config/t-libunwind-elf2
-rw-r--r--libgcc/config/t-slibgcc2
-rw-r--r--libgcc/config/t-slibgcc-fuchsia4
-rw-r--r--libgcc/config/t-slibgcc-libgcc2
-rw-r--r--libgcc/config/t-slibgcc-sld11
-rw-r--r--libgcc/config/t-softfp2
-rw-r--r--libgcc/config/t-vxcrtstuff12
-rw-r--r--libgcc/config/t-vxworks6
-rw-r--r--libgcc/config/t-vxworks77
-rw-r--r--libgcc/config/t-vxworksae17
-rw-r--r--libgcc/config/tilepro/atomic.c2
-rw-r--r--libgcc/config/tilepro/atomic.h4
-rw-r--r--libgcc/config/tilepro/linux-unwind.h2
-rw-r--r--libgcc/config/tilepro/softdivide.c2
-rw-r--r--libgcc/config/tilepro/softmpy.S2
-rw-r--r--libgcc/config/unwind-dw2-fde-darwin.c15
-rw-r--r--libgcc/config/v850/lib1funcs.S2
-rw-r--r--libgcc/config/vax/lib1funcs.S2
-rw-r--r--libgcc/config/visium/crti.S2
-rw-r--r--libgcc/config/visium/crtn.S2
-rw-r--r--libgcc/config/visium/divdi3.c2
-rw-r--r--libgcc/config/visium/lib2funcs.c6
-rw-r--r--libgcc/config/visium/memcpy.c2
-rw-r--r--libgcc/config/visium/memcpy.h2
-rw-r--r--libgcc/config/visium/memset.c2
-rw-r--r--libgcc/config/visium/memset.h2
-rw-r--r--libgcc/config/visium/moddi3.c2
-rw-r--r--libgcc/config/visium/set_trampoline_parity.c2
-rw-r--r--libgcc/config/visium/t-visium2
-rw-r--r--libgcc/config/visium/udivdi3.c2
-rw-r--r--libgcc/config/visium/udivmoddi4.c2
-rw-r--r--libgcc/config/visium/umoddi3.c2
-rw-r--r--libgcc/config/vms/vms-ucrt0.c2
-rw-r--r--libgcc/config/vxcache.c (renamed from libgcc/config/spu/mfc_tag_table.c)22
-rw-r--r--libgcc/config/vxcrtstuff.c132
-rw-r--r--libgcc/config/vxlib.c95
-rw-r--r--libgcc/config/xtensa/crti.S2
-rw-r--r--libgcc/config/xtensa/crtn.S2
-rw-r--r--libgcc/config/xtensa/ieee754-df.S2
-rw-r--r--libgcc/config/xtensa/ieee754-sf.S2
-rw-r--r--libgcc/config/xtensa/lib1funcs.S2
-rw-r--r--libgcc/config/xtensa/lib2funcs.S2
-rw-r--r--libgcc/config/xtensa/linux-unwind.h2
-rw-r--r--libgcc/config/xtensa/unwind-dw2-xtensa.c2
-rw-r--r--libgcc/config/xtensa/unwind-dw2-xtensa.h2
-rwxr-xr-x[-rw-r--r--]libgcc/configure897
-rw-r--r--libgcc/configure.ac48
-rw-r--r--libgcc/crtstuff.c62
-rw-r--r--libgcc/dfp-bit.c2
-rw-r--r--libgcc/dfp-bit.h2
-rw-r--r--libgcc/divmod.c9
-rw-r--r--libgcc/emutls.c2
-rw-r--r--libgcc/enable-execute-stack-mprotect.c2
-rw-r--r--libgcc/find-symver.awk2
-rw-r--r--libgcc/fixed-bit.c2
-rw-r--r--libgcc/fixed-bit.h2
-rw-r--r--libgcc/fp-bit.c22
-rw-r--r--libgcc/fp-bit.h16
-rw-r--r--libgcc/gbl-ctors.h2
-rw-r--r--libgcc/gcov.h2
-rw-r--r--libgcc/generic-morestack-thread.c4
-rw-r--r--libgcc/generic-morestack.c6
-rw-r--r--libgcc/generic-morestack.h2
-rw-r--r--libgcc/gthr-posix.h5
-rw-r--r--libgcc/gthr-single.h2
-rw-r--r--libgcc/gthr.h2
-rw-r--r--libgcc/libgcc-std.ver.in2
-rw-r--r--libgcc/libgcc2.c25
-rw-r--r--libgcc/libgcc2.h4
-rw-r--r--libgcc/libgcov-driver-system.c11
-rw-r--r--libgcc/libgcov-driver.c440
-rw-r--r--libgcc/libgcov-interface.c2
-rw-r--r--libgcc/libgcov-merge.c158
-rw-r--r--libgcc/libgcov-profiler.c229
-rw-r--r--libgcc/libgcov-util.c86
-rw-r--r--libgcc/libgcov.h53
-rwxr-xr-xlibgcc/mkheader.sh2
-rw-r--r--libgcc/mkmap-flat.awk2
-rw-r--r--libgcc/mkmap-symver.awk4
-rw-r--r--libgcc/offloadstuff.c2
-rw-r--r--libgcc/soft-fp/adddf3.c2
-rw-r--r--libgcc/soft-fp/addsf3.c2
-rw-r--r--libgcc/soft-fp/addtf3.c2
-rw-r--r--libgcc/soft-fp/divdf3.c2
-rw-r--r--libgcc/soft-fp/divsf3.c2
-rw-r--r--libgcc/soft-fp/divtf3.c2
-rw-r--r--libgcc/soft-fp/double.h6
-rw-r--r--libgcc/soft-fp/eqdf2.c2
-rw-r--r--libgcc/soft-fp/eqsf2.c2
-rw-r--r--libgcc/soft-fp/eqtf2.c2
-rw-r--r--libgcc/soft-fp/extenddftf2.c4
-rw-r--r--libgcc/soft-fp/extended.h4
-rw-r--r--libgcc/soft-fp/extendhftf2.c4
-rw-r--r--libgcc/soft-fp/extendsfdf2.c2
-rw-r--r--libgcc/soft-fp/extendsftf2.c4
-rw-r--r--libgcc/soft-fp/extendxftf2.c4
-rw-r--r--libgcc/soft-fp/fixdfdi.c2
-rw-r--r--libgcc/soft-fp/fixdfsi.c2
-rw-r--r--libgcc/soft-fp/fixdfti.c2
-rw-r--r--libgcc/soft-fp/fixhfti.c2
-rw-r--r--libgcc/soft-fp/fixsfdi.c2
-rw-r--r--libgcc/soft-fp/fixsfsi.c2
-rw-r--r--libgcc/soft-fp/fixsfti.c2
-rw-r--r--libgcc/soft-fp/fixtfdi.c2
-rw-r--r--libgcc/soft-fp/fixtfsi.c2
-rw-r--r--libgcc/soft-fp/fixtfti.c2
-rw-r--r--libgcc/soft-fp/fixunsdfdi.c2
-rw-r--r--libgcc/soft-fp/fixunsdfsi.c2
-rw-r--r--libgcc/soft-fp/fixunsdfti.c2
-rw-r--r--libgcc/soft-fp/fixunshfti.c2
-rw-r--r--libgcc/soft-fp/fixunssfdi.c2
-rw-r--r--libgcc/soft-fp/fixunssfsi.c2
-rw-r--r--libgcc/soft-fp/fixunssfti.c2
-rw-r--r--libgcc/soft-fp/fixunstfdi.c2
-rw-r--r--libgcc/soft-fp/fixunstfsi.c2
-rw-r--r--libgcc/soft-fp/fixunstfti.c2
-rw-r--r--libgcc/soft-fp/floatdidf.c2
-rw-r--r--libgcc/soft-fp/floatdisf.c2
-rw-r--r--libgcc/soft-fp/floatditf.c2
-rw-r--r--libgcc/soft-fp/floatsidf.c2
-rw-r--r--libgcc/soft-fp/floatsisf.c2
-rw-r--r--libgcc/soft-fp/floatsitf.c2
-rw-r--r--libgcc/soft-fp/floattidf.c2
-rw-r--r--libgcc/soft-fp/floattihf.c2
-rw-r--r--libgcc/soft-fp/floattisf.c2
-rw-r--r--libgcc/soft-fp/floattitf.c2
-rw-r--r--libgcc/soft-fp/floatundidf.c2
-rw-r--r--libgcc/soft-fp/floatundisf.c2
-rw-r--r--libgcc/soft-fp/floatunditf.c2
-rw-r--r--libgcc/soft-fp/floatunsidf.c2
-rw-r--r--libgcc/soft-fp/floatunsisf.c2
-rw-r--r--libgcc/soft-fp/floatunsitf.c2
-rw-r--r--libgcc/soft-fp/floatuntidf.c2
-rw-r--r--libgcc/soft-fp/floatuntihf.c2
-rw-r--r--libgcc/soft-fp/floatuntisf.c2
-rw-r--r--libgcc/soft-fp/floatuntitf.c2
-rw-r--r--libgcc/soft-fp/gedf2.c2
-rw-r--r--libgcc/soft-fp/gesf2.c2
-rw-r--r--libgcc/soft-fp/getf2.c2
-rw-r--r--libgcc/soft-fp/half.h4
-rw-r--r--libgcc/soft-fp/ledf2.c2
-rw-r--r--libgcc/soft-fp/lesf2.c2
-rw-r--r--libgcc/soft-fp/letf2.c2
-rw-r--r--libgcc/soft-fp/muldf3.c2
-rw-r--r--libgcc/soft-fp/mulsf3.c2
-rw-r--r--libgcc/soft-fp/multf3.c2
-rw-r--r--libgcc/soft-fp/negdf2.c2
-rw-r--r--libgcc/soft-fp/negsf2.c2
-rw-r--r--libgcc/soft-fp/negtf2.c2
-rw-r--r--libgcc/soft-fp/op-1.h2
-rw-r--r--libgcc/soft-fp/op-2.h2
-rw-r--r--libgcc/soft-fp/op-4.h65
-rw-r--r--libgcc/soft-fp/op-8.h90
-rw-r--r--libgcc/soft-fp/op-common.h23
-rw-r--r--libgcc/soft-fp/quad.h4
-rw-r--r--libgcc/soft-fp/single.h4
-rw-r--r--libgcc/soft-fp/soft-fp.h2
-rw-r--r--libgcc/soft-fp/subdf3.c2
-rw-r--r--libgcc/soft-fp/subsf3.c2
-rw-r--r--libgcc/soft-fp/subtf3.c2
-rw-r--r--libgcc/soft-fp/truncdfsf2.c2
-rw-r--r--libgcc/soft-fp/trunctfdf2.c4
-rw-r--r--libgcc/soft-fp/trunctfhf2.c4
-rw-r--r--libgcc/soft-fp/trunctfsf2.c4
-rw-r--r--libgcc/soft-fp/trunctfxf2.c4
-rw-r--r--libgcc/soft-fp/unorddf2.c2
-rw-r--r--libgcc/soft-fp/unordsf2.c2
-rw-r--r--libgcc/soft-fp/unordtf2.c2
-rw-r--r--libgcc/sync.c2
-rw-r--r--libgcc/udivhi3.c (renamed from libgcc/config/spu/cache.S)35
-rw-r--r--libgcc/udivmod.c9
-rw-r--r--libgcc/udivmodhi4.c47
-rw-r--r--libgcc/udivmodsi4.c4
-rw-r--r--libgcc/unwind-arm-common.inc218
-rw-r--r--libgcc/unwind-c.c3
-rw-r--r--libgcc/unwind-compat.c2
-rw-r--r--libgcc/unwind-compat.h2
-rw-r--r--libgcc/unwind-dw2-fde-compat.c2
-rw-r--r--libgcc/unwind-dw2-fde-dip.c2
-rw-r--r--libgcc/unwind-dw2-fde.c5
-rw-r--r--libgcc/unwind-dw2-fde.h2
-rw-r--r--libgcc/unwind-dw2.c14
-rw-r--r--libgcc/unwind-dw2.h2
-rw-r--r--libgcc/unwind-generic.h2
-rw-r--r--libgcc/unwind-pe.h24
-rw-r--r--libgcc/unwind-seh.c2
-rw-r--r--libgcc/unwind-sjlj.c2
-rw-r--r--libgcc/unwind.inc2
-rw-r--r--libgcc/vtv_end.c2
-rw-r--r--libgcc/vtv_end_preinit.c2
-rw-r--r--libgcc/vtv_start.c2
-rw-r--r--libgcc/vtv_start_preinit.c2
1185 files changed, 10511 insertions, 4799 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index c13bf4cb2f6..bf5c131d7f8 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,1067 @@
+2019-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ PR libgcc/91737
+ * config.host: Add t-gthr-noweak on *-*-musl*.
+ * config/t-gthr-noweak: New file.
+
+2019-11-17 John David Anglin <danglin@gcc.gnu.org>
+
+ * config/pa/linux-atomic.c (__kernel_cmpxchg): Change argument 1 to
+ volatile void *. Remove trap check.
+ (__kernel_cmpxchg2): Likewise.
+ (FETCH_AND_OP_2): Adjust operand types.
+ (OP_AND_FETCH_2): Likewise.
+ (FETCH_AND_OP_WORD): Likewise.
+ (OP_AND_FETCH_WORD): Likewise.
+ (COMPARE_AND_SWAP_2): Likewise.
+ (__sync_val_compare_and_swap_4): Likewise.
+ (__sync_bool_compare_and_swap_4): Likewise.
+ (SYNC_LOCK_TEST_AND_SET_2): Likewise.
+ (__sync_lock_test_and_set_4): Likewise.
+ (SYNC_LOCK_RELEASE_1): Likewise. Use __kernel_cmpxchg2 for release.
+ (__sync_lock_release_4): Adjust operand types. Use __kernel_cmpxchg
+ for release.
+ (__sync_lock_release_8): Remove.
+
+2019-11-15 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * config/m68k/linux-unwind.h (struct uw_ucontext): Use sigset_t instead
+ of __sigset_t.
+
+2019-11-14 Jerome Lambourg <lambourg@adacore.com>
+ Doug Rupp <rupp@adacore.com>
+ Olivier Hainque <hainque@adacore.com>
+
+ * config.host: Collapse the arm-vxworks entries into
+ a single arm-wrs-vxworks7* one.
+ * config/arm/unwind-arm-vxworks.c: Update comments. Provide
+ __gnu_Unwind_Find_exidx and a weak dummy __cxa_type_match for
+ kernel modules, to be overriden by libstdc++ when we link with
+ it. Rely on externally provided __exidx_start/end.
+
+2019-11-14 Doug Rupp <rupp@adacore.com>
+ Olivier Hainque <hainque@adacore.com>
+
+ * config.host: Handle aarch64*-wrs-vxworks7*.
+
+2019-11-12 Olivier Hainque <hainque@adacore.com>
+
+ * config/t-gthr-vxworksae: New file, add all the gthr-vxworks
+ sources except the cxx0x support to LIB2ADDEH. We don't support
+ cxx0x on AE/653.
+ * config/t-vxworksae: New file.
+ * config.host: Handle *-*-vxworksae: Add the two aforementioned
+ Makefile fragment files at their expected position in the tmake_file
+ list, in accordance with what is done for other VxWorks variants.
+
+2019-11-12 Corentin Gay <gay@adacore.com>
+ Jerome Lambourg <lambourg@adacore.com>
+ Olivier Hainque <hainque@adacore.com>
+
+ * config/t-gthr-vxworks: New file, add all the gthr-vxworks
+ sources to LIB2ADDEH.
+ * config/t-vxworks: Remove adjustments to LIB2ADDEH.
+ * config/t-vxworks7: Likewise.
+
+ * config.host: Append a block at the end of the file to add the
+ t-gthr files to the tmake_file list for VxWorks after everything
+ else.
+
+ * config/vxlib.c: Rename as gthr-vxworks.c.
+ * config/vxlib-tls.c: Rename as gthr-vxworks-tls.c.
+
+ * config/gthr-vxworks.h: Simplify a few comments. Expose a TAS
+ API and a basic error checking API, both internal. Simplify the
+ __gthread_once_t type definition and initializers. Add sections
+ for condition variables support and for the C++0x thread support,
+ conditioned against Vx653 for the latter.
+
+ * config/gthr-vxworks.c (__gthread_once): Simplify comments and
+ implementation, leveraging the TAS internal API.
+ * config/gthr-vxworks-tls.c: Introduce an internal TLS data access
+ API, leveraging the general availability of TLS services in VxWorks7
+ post SR6xxx.
+ (__gthread_setspecific, __gthread_setspecific): Use it.
+ (tls_delete_hook): Likewise, and simplify the enter/leave dtor logic.
+ * config/gthr-vxworks-cond.c: New file. GTHREAD_COND variable
+ support based on VxWorks primitives.
+ * config/gthr-vxworks-thread.c: New file. GTHREAD_CXX0X support
+ based on VxWorks primitives.
+
+2019-11-06 Jerome Lambourg <lambourg@adacore.com>
+ Olivier Hainque <hainque@adacore.com>
+
+ * config/vxcrtstuff.c: New file.
+ * config/t-vxcrtstuff: New Makefile fragment.
+ * config.host: Append t-vxcrtstuff to the tmake_file list
+ on all VxWorks ports using dwarf for table based EH.
+
+2019-11-07 Georg-Johann Lay <avr@gjlay.de>
+
+ Support 64-bit double and 64-bit long double configurations.
+
+ PR target/92055
+ * config/avr/t-avr (HOST_LIBGCC2_CFLAGS): Only add -DF=SF if
+ long double is a 32-bit type.
+ * config/avr/t-avrlibc: Copy double64 and long-double64
+ multilib(s) from the vanilla one.
+ * config/avr/t-copy-libgcc: New Makefile snip.
+
+2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * crtstuff.c: Define USE_TM_CLONE_REGISTRY to 0 if it's undefined and
+ the target output object format is not ELF.
+ s/defined(USE_TM_CLONE_REGISTRY)/USE_TM_CLONE_REGISTRY.
+
+2019-11-03 Oleg Endo <olegendo@gcc.gnu.org>
+
+ PR libgcc/78804
+ * fp-bit.h: Remove FLOAT_BIT_ORDER_MISMATCH.
+ * fp-bit.c (pack_d, unpack_d): Remove special cases for
+ FLOAT_BIT_ORDER_MISMATCH.
+ * config/arc/t-arc: Remove FLOAT_BIT_ORDER_MISMATCH.
+
+2019-11-01 Jim Wilson <jimw@sifive.com>
+
+ * config/riscv/t-softfp32 (softfp_extra): Add FP divide routines
+
+2019-10-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * config/msp430/lib2hw_mul.S: Fix wrong syntax in branch instruction.
+ s/RESULT_LO/RESLO, s/RESULT_HI/RESHI, s/MPY_OP1/MPY,
+ s/MPY_OP1_S/MPYS, s/MAC_OP1/MAC, s/MPY_OP2/OP2, s/MAC_OP2/OP2.
+ Define symbols for 32-bit and f5series hardware multiply
+ register addresses.
+ Replace hard-coded register addresses with symbols.
+ Fix "_mspabi*" typo.
+ Fix whitespace.
+ * config/msp430/lib2mul.c: Add comment.
+
+2019-10-15 John David Anglin <danglin@gcc.gnu.org>
+
+ * config/pa/fptr.c (_dl_read_access_allowed): Change argument to
+ unsigned int. Adjust callers.
+ (__canonicalize_funcptr_for_compare): Change plabel type to volatile
+ unsigned int *. Load relocation offset before function pointer.
+ Add barrier to ensure ordering.
+
+2019-10-12 John David Anglin <danglin@gcc.gnu.org>
+
+ * config/pa/lib2funcs.S (__gcc_plt_call): Load branch target to %r21.
+ Load PIC register after branch target. Fix white space.
+ * config/pa/milli64.S ($$dyncall): Separate LINUX and non LINUX
+ implementations. Load PIC register after branch target. Don't
+ clobber function pointer when it points to function descriptor.
+ Use nullification instead of branch in LINUX implementation.
+
+2019-10-03 John David Anglin <danglin@gcc.gnu.org>
+
+ * config/pa/fptr.c: Disable -Warray-bounds warning.
+
+2019-09-25 Richard Henderson <richard.henderson@linaro.org>
+
+ * config.in, configure: Re-rebuild with stock autoconf 2.69,
+ not the ubuntu modified 2.69.
+
+ PR target/91833
+ * config/aarch64/lse-init.c: Include auto-target.h. Disable
+ initialization if !HAVE_SYS_AUXV_H.
+ * configure.ac (AC_CHECK_HEADERS): Add sys/auxv.h.
+ * config.in, configure: Rebuild.
+
+ PR target/91834
+ * config/aarch64/lse.S (LDNM): Ensure STXR output does not
+ overlap the inputs.
+
+2019-09-25 Shaokun Zhang <zhangshaokun@hisilicon.com>
+
+ * config/aarch64/sync-cache.c (__aarch64_sync_cache_range): Add support for
+ CTR_EL0.IDC and CTR_EL0.DIC.
+
+2019-09-20 Christophe Lyon <christophe.lyon@st.com>
+
+ Revert:
+ 2019-09-10 Christophe Lyon <christophe.lyon@st.com>
+ Mickaël Guêné <mickael.guene@st.com>
+
+ * config/arm/unwind-arm.c (_Unwind_VRS_Set): Handle thumb-only
+ architecture.
+
+2019-09-19 Richard Henderson <richard.henderson@linaro.org>
+
+ * config/aarch64/lse-init.c: New file.
+ * config/aarch64/lse.S: New file.
+ * config/aarch64/t-lse: New file.
+ * config.host: Add t-lse to all aarch64 tuples.
+
+2019-09-10 Christophe Lyon <christophe.lyon@st.com>
+ Mickaël Guêné <mickael.guene@st.com>
+
+ * config/arm/unwind-arm.c (_Unwind_VRS_Set): Handle thumb-only
+ architecture.
+
+2019-09-10 Christophe Lyon <christophe.lyon@st.com>
+ Mickaël Guêné <mickael.guene@st.com>
+
+ * unwind-arm-common.inc (ARM_SET_R7_RT_SIGRETURN)
+ (THUMB2_SET_R7_RT_SIGRETURN, FDPIC_LDR_R12_WITH_FUNCDESC)
+ (FDPIC_LDR_R9_WITH_GOT, FDPIC_LDR_PC_WITH_RESTORER)
+ (FDPIC_FUNCDESC_OFFSET, ARM_NEW_RT_SIGFRAME_UCONTEXT)
+ (ARM_UCONTEXT_SIGCONTEXT, ARM_SIGCONTEXT_R0, FDPIC_T2_LDR_R12_WITH_FUNCDESC)
+ (FDPIC_T2_LDR_R9_WITH_GOT, FDPIC_T2_LDR_PC_WITH_RESTORER): New.
+ (__gnu_personality_sigframe_fdpic): New.
+ (get_eit_entry): Add FDPIC signal frame support.
+
+2019-09-10 Christophe Lyon <christophe.lyon@st.com>
+ Mickaël Guêné <mickael.guene@st.com>
+
+ * config/arm/linux-atomic.c (__kernel_cmpxchg): Add FDPIC support.
+ (__kernel_dmb): Likewise.
+ (__fdpic_cmpxchg): New function.
+ (__fdpic_dmb): New function.
+ * config/arm/unwind-arm.h (FDPIC_REGNUM): New define.
+ (gnu_Unwind_Find_got): New function.
+ (_Unwind_decode_typeinfo_ptr): Add FDPIC support.
+ * unwind-arm-common.inc (UCB_PR_GOT): New.
+ (funcdesc_t): New struct.
+ (get_eit_entry): Add FDPIC support.
+ (unwind_phase2): Likewise.
+ (unwind_phase2_forced): Likewise.
+ (__gnu_Unwind_RaiseException): Likewise.
+ (__gnu_Unwind_Resume): Likewise.
+ (__gnu_Unwind_Backtrace): Likewise.
+ * unwind-pe.h (read_encoded_value_with_base): Likewise.
+
+2019-09-10 Christophe Lyon <christophe.lyon@st.com>
+ Mickaël Guêné <mickael.guene@st.com>
+
+ * libgcc/crtstuff.c: Add support for FDPIC.
+
+2019-09-10 Christophe Lyon <christophe.lyon@st.com>
+
+ * config.host: Handle *-*-uclinuxfdpiceabi.
+
+2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * config.host: Set cpu_type for bpf-*-* targets.
+ * config/bpf/t-bpf: Likewise.
+ * config/bpf/crtn.S: Likewise.
+ * config/bpf/crti.S: New file.
+
+2019-09-06 Jim Wilson <jimw@sifive.com>
+
+ * config.host (riscv*-*-linux*): Add t-slibgcc-libgcc to tmake_file.
+ (riscv*-*-freebsd*): Likewise.
+
+2019-09-03 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config.host: Remove references to spu.
+ * config/spu/: Remove directory.
+
+2019-08-23 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ PR target/91306
+ * crtstuff.c (__CTOR_LIST__): Align to the "__alignof__" the array
+ element type, instead of "sizeof" the element type.
+ (__DTOR_LIST__): Likewise.
+ (__TMC_LIST__): Likewise.
+ (__do_global_dtors_aux_fini_array_entry): Likewise.
+ (__frame_dummy_init_array_entry): Likewise.
+ (__CTOR_END__): Likewise.
+ (__DTOR_END__): Likweise.
+ (__FRAME_END__): Likewise.
+ (__TMC_END__): Likewise.
+
+2019-08-20 Lili Cui <lilicui@intel.com>
+
+ * config/i386/cpuinfo.h: Add INTEL_COREI7_TIGERLAKE and
+ INTEL_COREI7_COOPERLAKE.
+
+2019-07-31 Matt Thomas <matt@3am-software.com>
+ Nick Hudson <nick@nthcliff.demon.co.uk>
+ Matthew Green <mrg@eterna.com.au>
+ Maya Rashish <coypu@sdf.org>
+
+ * config.host (hppa*-*-netbsd*): New case.
+ * config/pa/t-netbsd: New file.
+
+2019-07-31 Joel Hutton <Joel.Hutton@arm.com>
+
+ * config/arm/cmse.c (cmse_check_address_range): Add
+ warn_unused_result attribute.
+
+2019-07-22 Martin Liska <mliska@suse.cz>
+
+ * config/pa/stublib.c: Remove stub symbol __gnu_lto_v1.
+ * config/pa/t-stublib: Likewise.
+
+2019-07-22 Stafford Horne <shorne@gmail.com>
+
+ PR target/90362
+ * config/or1k/lib1funcs.S (__udivsi3): Change l.sfeqi
+ to l.sfeq and l.sfltsi to l.sflts equivalents as the immediate
+ instructions are not available on every processor. Change a
+ l.bnf to l.bf to fix logic issue.
+
+2019-07-04 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config.host: Remove reference to t-darwin8.
+
+2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config.host (powerpc-*-darwin*,powerpc64-*-darwin*): Revise crt
+ list.
+ * config/rs6000/t-darwin: Build crt3_2 for older systems. Revise
+ mmacosx-version-min for crts to run across all system versions.
+ * config/rs6000/t-darwin64 (LIB2ADD): Remove.
+ * config/t-darwin: Revise mmacosx-version-min for crts to run across
+ system versions >= 10.4.
+
+2019-07-03 Martin Liska <mliska@suse.cz>
+
+ * Makefile.in: Use topn_values instead of one_value names.
+ * libgcov-merge.c (__gcov_merge_single): Move to ...
+ (__gcov_merge_topn): ... this.
+ (merge_single_value_set): Move to ...
+ (merge_topn_values_set): ... this.
+ * libgcov-profiler.c (__gcov_one_value_profiler_body): Move to
+ ...
+ (__gcov_topn_values_profiler_body): ... this.
+ (__gcov_one_value_profiler_v2): Move to ...
+ (__gcov_topn_values_profiler): ... this.
+ (__gcov_one_value_profiler_v2_atomic): Move to ...
+ (__gcov_topn_values_profiler_atomic): ... this.
+ (__gcov_indirect_call_profiler_v4): Remove.
+ * libgcov-util.c (__gcov_single_counter_op): Move to ...
+ (__gcov_topn_counter_op): ... this.
+ * libgcov.h (L_gcov_merge_single): Remove.
+ (L_gcov_merge_topn): New.
+ (__gcov_merge_single): Remove.
+ (__gcov_merge_topn): New.
+ (__gcov_one_value_profiler_v2): Move to ..
+ (__gcov_topn_values_profiler): ... this.
+ (__gcov_one_value_profiler_v2_atomic): Move to ...
+ (__gcov_topn_values_profiler_atomic): ... this.
+
+2019-07-03 Martin Liska <mliska@suse.cz>
+
+ * libgcov-merge.c (merge_single_value_set): Support N values.
+ * libgcov-profiler.c (__gcov_one_value_profiler_body): Likewise.
+
+2019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com>
+
+ * Makefile.in (USE_TM_CLONE_REGISTRY): New.
+ (CRTSTUFF_CFLAGS): Use USE_TM_CLONE_REGISTRY.
+ * configure.ac: Add --disable-tm-clone-registry option.
+ * configure: Regenerate.
+
+2019-06-27 Martin Liska <mliska@suse.cz>
+
+ * libgcov-driver-system.c (gcov_exit_open_gcda_file): Remove obviously
+ dead assignments.
+ * libgcov-util.c: Likewise.
+
+2019-06-27 Martin Liska <mliska@suse.cz>
+
+ * libgcov-util.c (gcov_profile_merge): Release allocated
+ memory.
+ (calculate_overlap): Likewise.
+
+2019-06-25 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config.host: Add libef_ppc.a to the extra files for powerpc-darwin.
+ * config/rs6000/t-darwin: (PPC_ENDFILE_SRC, PPC_ENDFILE_OBJS): New.
+ Build objects for the out of line save/restore register functions
+ so that they can be used for any supported Darwin version.
+ * config/t-darwin: Default the build Darwin version to Darwin8
+ (MacOS 10.4).
+
+2019-06-25 Martin Liska <mliska@suse.cz>
+
+ * libgcov-driver-system.c (replace_filename_variables): Do not
+ call strlen with NULL argument.
+
+2019-06-25 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/t-amdgcn (LIB2ADD): Add unwind-gcn.c.
+ * config/gcn/unwind-gcn.c: New file.
+
+2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
+ Andrew Stubbs <ams@codesourcery.com>
+
+ * configure: Regenerate.
+ * config/gcn/gthr-gcn.h: New.
+
+2019-06-18 Tom de Vries <tdevries@suse.de>
+
+ * config/nvptx/crt0.c (__main): Declare.
+
+2019-06-17 Matthew Green <mrg@eterna.com.au>
+ Maya Rashish <coypu@sdf.org>
+
+ * config.host (aarch64*-*-netbsd*): New case.
+
+2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * config/msp430/slli.S (__mspabi_sllll): New library function for
+ performing a logical left shift of a 64-bit value.
+ * config/msp430/srai.S (__mspabi_srall): New library function for
+ performing a arithmetic right shift of a 64-bit value.
+ * config/msp430/srll.S (__mspabi_srlll): New library function for
+ performing a logical right shift of a 64-bit value.
+
+2019-06-14 Matt Thomas <matt@3am-software.com>
+ Matthew Green <mrg@eterna.com.au>
+ Nick Hudson <skrll@netbsd.org>
+ Maya Rashish <coypu@sdf.org>
+
+ * config.host (arm*-*-netbsdelf*): Add support for EABI configurations.
+ * config/arm/t-netbsd (LIB1ASMFUNCS): Add some additional assembler
+ functions to build.
+ * config/arm/t-netbsd-eabi: New file.
+
+2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * config.host: Add PRU target.
+ * config/pru/asri.c: New file.
+ * config/pru/eqd.c: New file.
+ * config/pru/eqf.c: New file.
+ * config/pru/ged.c: New file.
+ * config/pru/gef.c: New file.
+ * config/pru/gtd.c: New file.
+ * config/pru/gtf.c: New file.
+ * config/pru/led.c: New file.
+ * config/pru/lef.c: New file.
+ * config/pru/lib2bitcountHI.c: New file.
+ * config/pru/lib2divHI.c: New file.
+ * config/pru/lib2divQI.c: New file.
+ * config/pru/lib2divSI.c: New file.
+ * config/pru/libgcc-eabi.ver: New file.
+ * config/pru/ltd.c: New file.
+ * config/pru/ltf.c: New file.
+ * config/pru/mpyll.S: New file.
+ * config/pru/pru-abi.h: New file.
+ * config/pru/pru-asm.h: New file.
+ * config/pru/pru-divmod.h: New file.
+ * config/pru/sfp-machine.h: New file.
+ * config/pru/t-pru: New file.
+
+2019-06-11 Jakub Jelinek <jakub@redhat.com>
+
+ * libgcov-merge.c (__gcov_merge_single): Revert previous change.
+
+2019-06-10 Martin Liska <mliska@suse.cz>
+
+ PR bootstrap/90808
+ * libgcov.h: Add ATTRIBUTE_UNUSED.
+
+2019-06-10 Martin Liska <mliska@suse.cz>
+
+ * Makefile.in: Add __gcov_one_value_profiler_v2,
+ __gcov_one_value_profiler_v2_atomic and
+ __gcov_indirect_call_profiler_v4.
+ * libgcov-merge.c (__gcov_merge_single): Change
+ function signature.
+ (merge_single_value_set): New.
+ * libgcov-profiler.c (__gcov_one_value_profiler_body):
+ Update functionality.
+ (__gcov_one_value_profiler): Remove.
+ (__gcov_one_value_profiler_v2): ... this.
+ (__gcov_one_value_profiler_atomic): Rename to ...
+ (__gcov_one_value_profiler_v2_atomic): this.
+ (__gcov_indirect_call_profiler_v3): Rename to ...
+ (__gcov_indirect_call_profiler_v4): ... this.
+ * libgcov.h (__gcov_one_value_profiler): Remove.
+ (__gcov_one_value_profiler_atomic): Remove.
+ (__gcov_one_value_profiler_v2_atomic): New.
+ (__gcov_indirect_call_profiler_v3): Remove.
+ (__gcov_one_value_profiler_v2): New.
+ (__gcov_indirect_call_profiler_v4): New.
+ (gcov_get_counter_ignore_scaling): New function.
+
+2019-06-07 Martin Liska <mliska@suse.cz>
+
+ * Makefile.in: Remove usage of
+ _gcov_merge_icall_topn.
+ * libgcov-driver.c (gcov_sort_n_vals): Remove.
+ (gcov_sort_icall_topn_counter): Likewise.
+ (gcov_sort_topn_counter_arrays): Likewise.
+ (dump_one_gcov): Remove call to gcov_sort_topn_counter_arrays.
+ * libgcov-merge.c (__gcov_merge_icall_topn): Remove.
+ * libgcov-profiler.c (__gcov_topn_value_profiler_body):
+ Likewise.
+ (GCOV_ICALL_COUNTER_CLEAR_THRESHOLD): Remove.
+ (struct indirect_call_tuple): Remove.
+ (__gcov_indirect_call_topn_profiler): Remove.
+ * libgcov-util.c (__gcov_icall_topn_counter_op): Remove.
+ * libgcov.h (gcov_sort_n_vals): Remove.
+ (L_gcov_merge_icall_topn): Likewise.
+ (__gcov_merge_icall_topn): Likewise.
+ (__gcov_indirect_call_topn_profiler): Likewise.
+
+2019-06-06 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config/rs6000/t-darwin: Ensure that the unwinder is built with
+ altivec enabled.
+
+2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * config/msp430/slli.S (__mspabi_slli_n): Put function in its own
+ section.
+ (__mspabi_slli): Likewise.
+ (__mspabi_slll_n): Likewise.
+ (__mspabi_slll): Likewise.
+ * config/msp430/srai.S (__mspabi_srai_n): Likewise.
+ (__mspabi_srai): Likewise.
+ (__mspabi_sral_n): Likewise.
+ (__mspabi_sral): Likewise.
+ * config/msp430/srli.S (__mspabi_srli_n): Likewise.
+ (__mspabi_srli): Likewise.
+ (__mspabi_srll_n): Likewise.
+ (__mspabi_srll): Likewise.
+
+2019-06-05 Yoshinori Sato <ysato@users.sourceforge.jp>
+
+ * config.host (rx-*-linux*): Add t-fdpbit to tmake_file
+ Add appropriate tm_file clause as well.
+ * config/rx/t-rx (HOST_LIBGCC2_CFLAGS): Remove.
+
+2019-06-05 James Clarke <jrtc27@jrtc27.com>
+
+ * config/ia64/crtbegin.S (__dso_handle): Put in .sdata/.sbss
+ rather than .data/.bss so it can be accessed via gp-relative
+ addressing.
+
+2019-06-05 David Edelsohn <dje.gcc@gmail.com>
+
+ * config/rs6000/aix-unwind.h (LR_REGNO): Rename to R_LR.
+ (CR2_REGNO): Rename to R_CR2.
+ (XER_REGNO): Rename to R_XER.
+ (FIRST_ALTIVEC_REGNO): Rename to R_FIRST_ALTIVEC.
+ (VRSAVE_REGNO): Rename to R_VRSAVE.
+ (VSCR_REGNO): R_VSCR.
+
+2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
+
+ * config.host (rx-*-linux*): Add new case.
+ * config/rx/t-rx (HOST_LIBGCC2_CFLAGS): Force DFmode to SFmode.
+
+2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
+
+ * config/aarch64/aarch64-unwind.h (aarch64_cie_signed_with_b_key): New
+ function.
+ * config/aarch64/aarch64-unwind.h (aarch64_post_extract_frame_addr,
+ aarch64_post_frob_eh_handler_addr): Add check for b-key.
+ * config/aarch64/aarch64-unwind-h (aarch64_post_extract_frame_addr,
+ aarch64_post_frob_eh_handler_addr, aarch64_post_frob_update_context):
+ Rename RA_A_SIGNED_BIT to RA_SIGNED_BIT.
+ * unwind-dw2-fde.c (get_cie_encoding): Add check for 'B' in augmentation
+ string.
+ * unwind-dw2.c (extract_cie_info): Add check for 'B' in augmentation
+ string.
+ (RA_A_SIGNED_BIT): Rename to RA_SIGNED_BIT.
+
+2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/sparc/sol2-unwind.h [__arch64__] (sparc64_is_sighandler):
+ Remove Solaris 9 and 10 support.
+ (sparc_is_sighandler): Likewise.
+
+2019-05-26 John David Anglin <danglin@gcc.gnu.org>
+
+ * config/pa/linux-unwind.h (pa32_fallback_frame_state): Add cast.
+
+2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * soft-fp/extenddftf2.c: Use "_FP_W_TYPE_SIZE < 64" to check if
+ 4_FP_W_TYPEs are used for IEEE quad precision.
+ * soft-fp/extendhftf2.c: Likewise.
+ * soft-fp/extendsftf2.c: Likewise.
+ * soft-fp/extendxftf2.c: Likewise.
+ * soft-fp/trunctfdf2.c: Likewise.
+ * soft-fp/trunctfhf2.c: Likewise.
+ * soft-fp/trunctfsf2.c: Likewise.
+ * soft-fp/trunctfxf2.c: Likewise.
+ * config/rs6000/ibm-ldouble.c: Likewise.
+
+2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config.host: Simplify various *-*-solaris2.1[0-9]* to
+ *-*-solaris2*.
+ * configure.ac: Likewise.
+ * configure: Regenerate.
+
+ * config/i386/sol2-unwind.h (x86_fallback_frame_state): Remove
+ Solaris 10 and Solaris 11 < snv_125 handling.
+
+2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config/rs6000/darwin-vecsave.S: Set .machine appropriately.
+
+2019-05-07 Hongtao Liu <hongtao.liu@intel.com>
+
+ * config/i386/cpuinfo.c (get_available_features): Detect BF16.
+ * config/i386/cpuinfo.h (enum processor_features): Add
+ FEATURE_AVX512BF16.
+
+2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+ Bernd Edlinger <bernd.edlinger@hotmail.de>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR target/89093
+ * config/arm/pr-support.c: Add #pragma GCC target("general-regs-only").
+ * config/arm/unwind-arm.c: Likewise.
+ * unwind-c.c (PERSONALITY_FUNCTION): Add general-regs-only target
+ attribute for ARM.
+
+2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
+
+ * config/nds32/linux-unwind.h (SIGRETURN): Remove.
+ (RT_SIGRETURN): Update.
+ (nds32_fallback_frame_state): Update.
+
+2019-02-21 Martin Sebor <msebor@redhat.com>
+
+ * libgcc2.h (__clear_cache): Correct signature.
+ * libgcc2.c (__clear_cache): Same.
+
+2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/linux-unwind.h (alpha_fallback_frame_state):
+ Cast 'mcontext_t *' &rt_->uc.uc_mcontext to 'struct sigcontext *'.
+
+2019-02-19 Uroš Bizjak <ubizjak@gmail.com>
+
+ * unwind-dw2.c (_Unwind_GetGR) [DWARF_ZERO_REG]: Compare
+ regno instead of index to DWARF_ZERO_REG.
+
+2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/visium/lib2funcs.c (__set_trampoline_parity): Replace
+ TRAMPOLINE_SIZE with __LIBGCC_TRAMPOLINE_SIZE__.
+
+2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/t-linux: Add -mfp-rounding-mode=d
+ to HOST_LIBGCC2_CFLAGS.
+
+2019-01-23 Joseph Myers <joseph@codesourcery.com>
+
+ PR libgcc/88931
+ * libgcc2.c (FSTYPE FUNC (DWtype u)): Correct no leading bits case.
+
+2019-01-18 Martin Liska <mliska@suse.cz>
+
+ * libgcov-profiler.c (__gcov_indirect_call_profiler_v2): Rename
+ to ...
+ (__gcov_indirect_call_profiler_v3): ... this.
+ * libgcov.h (__gcov_indirect_call_profiler_v2): Likewise.
+ (__gcov_indirect_call_profiler_v3): Likewise.
+ * Makefile.in: Bump function name.
+
+2019-01-18 Martin Liska <mliska@suse.cz>
+
+ * libgcov-driver.c (GCOV_PROF_PREFIX): Define.
+ (gcov_version): Use in gcov_error.
+ (merge_one_data): Likewise.
+ (dump_one_gcov): Likewise.
+
+2019-01-18 Martin Liska <mliska@suse.cz>
+
+ * libgcov-driver.c (gcov_version_string): New function.
+ (gcov_version): Convert version integer into string.
+
+2019-01-17 Andrew Stubbs <ams@codesourcery.com>
+ Kwok Cheung Yeung <kcy@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+ Tom de Vries <tom@codesourcery.com>
+
+ * config.host: Recognize amdgcn*-*-amdhsa.
+ * config/gcn/crt0.c: New file.
+ * config/gcn/lib2-divmod-hi.c: New file.
+ * config/gcn/lib2-divmod.c: New file.
+ * config/gcn/lib2-gcn.h: New file.
+ * config/gcn/sfp-machine.h: New file.
+ * config/gcn/t-amdgcn: New file.
+
+2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
+
+ PR other/16615
+
+ * config/c6x/libunwind.S: Mechanically replace "can not" with
+ "cannot".
+ * config/tilepro/atomic.h: Likewise.
+ * config/vxlib-tls.c: Likewise.
+ * generic-morestack-thread.c: Likewise.
+ * generic-morestack.c: Likewise.
+ * mkmap-symver.awk: Likewise.
+
+2019-01-01 Jakub Jelinek <jakub@redhat.com>
+
+ Update copyright years.
+
+2018-12-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * unwind-pe.h (read_encoded_value_with_base): Add GCC pragma
+ to ignore -Waddress-of-packed-member.
+
+2018-12-19 Thomas Preud'homme <thomas.preudhomme@linaro.org>
+
+ * /config/arm/lib1funcs.S (FUNC_START): Remove unused sp_section
+ parameter and corresponding code.
+ (ARM_FUNC_START): Likewise in both definitions.
+ Also update footer comment about condition that need to match with
+ gcc/config/arm/elf.h to also include libgcc/config/arm/t-arm.
+ * config/arm/ieee754-df.S (muldf3): Also build it if L_arm_muldf3 is
+ defined. Weakly define it in this case.
+ * config/arm/ieee754-sf.S (mulsf3): Likewise with L_arm_mulsf3.
+ * config/arm/t-elf (LIB1ASMFUNCS): Build _arm_muldf3.o and
+ _arm_mulsf3.o before muldiv versions if targeting Thumb-1 only. Add
+ comment to keep condition in sync with the one in
+ libgcc/config/arm/lib1funcs.S and gcc/config/arm/elf.h.
+
+2018-12-18 Wei Xiao <wei3.xiao@intel.com>
+
+ * config/i386/cpuinfo.c (get_intel_cpu): Handle cascadelake.
+ * config/i386/cpuinfo.h: Add INTEL_COREI7_CASCADELAKE.
+
+2018-12-12 Rasmus Villemoes <rv@rasmusvillemoes.dk>
+
+ * config/rs6000/tramp.S (__trampoline_setup): Also emit .size
+ and .cfi_endproc directives for VxWorks targets.
+
+2018-12-05 Paul Koning <ni1d@arrl.net>
+
+ * udivmodhi4.c (__udivmodhi4): Fix loop end check.
+
+2018-11-27 Alan Modra <amodra@gmail.com>
+
+ * config/rs6000/morestack.S (__stack_split_initialize),
+ (__morestack_get_guard, __morestack_set_guard),
+ (__morestack_make_guard): Provide CFI covering these functions.
+ * config/rs6000/tramp.S (__trampoline_setup): Likewise.
+
+2018-11-15 Xianmiao Qu <xianmiao_qu@c-sky.com>
+
+ * config/csky/linux-unwind.h (sc_pt_regs): Update for kernel.
+ (sc_pt_regs_lr): Update for kernel.
+ (sc_pt_regs_tls): Update for kernel.
+
+2018-11-15 Xianmiao Qu <xianmiao_qu@c-sky.com>
+
+ * config/csky/linux-unwind.h: Fix coding style.
+
+2018-11-13 Xianmiao Qu <xianmiao_qu@c-sky.com>
+
+ * config/csky/linux-unwind.h (_sig_ucontext_t): Remove.
+ (csky_fallback_frame_state): Modify the check of the
+ instructions to adapt to changes in the kernel
+
+2018-11-09 Stafford Horne <shorne@gmail.com>
+ Richard Henderson <rth@twiddle.net>
+
+ * config.host: Add OpenRISC support.
+ * config/or1k/*: New.
+
+2018-11-08 Kito Cheng <kito@andestech.com>
+
+ * soft-fp/adddf3.c: Update from glibc.
+ * soft-fp/addsf3.c: Likewise.
+ * soft-fp/addtf3.c: Likewise.
+ * soft-fp/divdf3.c: Likewise.
+ * soft-fp/divsf3.c: Likewise.
+ * soft-fp/divtf3.c: Likewise.
+ * soft-fp/double.h: Likewise.
+ * soft-fp/eqdf2.c: Likewise.
+ * soft-fp/eqsf2.c: Likewise.
+ * soft-fp/eqtf2.c: Likewise.
+ * soft-fp/extenddftf2.c: Likewise.
+ * soft-fp/extended.h: Likewise.
+ * soft-fp/extendhftf2.c: Likewise.
+ * soft-fp/extendsfdf2.c: Likewise.
+ * soft-fp/extendsftf2.c: Likewise.
+ * soft-fp/extendxftf2.c: Likewise.
+ * soft-fp/fixdfdi.c: Likewise.
+ * soft-fp/fixdfsi.c: Likewise.
+ * soft-fp/fixdfti.c: Likewise.
+ * soft-fp/fixhfti.c: Likewise.
+ * soft-fp/fixsfdi.c: Likewise.
+ * soft-fp/fixsfsi.c: Likewise.
+ * soft-fp/fixsfti.c: Likewise.
+ * soft-fp/fixtfdi.c: Likewise.
+ * soft-fp/fixtfsi.c: Likewise.
+ * soft-fp/fixtfti.c: Likewise.
+ * soft-fp/fixunsdfdi.c: Likewise.
+ * soft-fp/fixunsdfsi.c: Likewise.
+ * soft-fp/fixunsdfti.c: Likewise.
+ * soft-fp/fixunshfti.c: Likewise.
+ * soft-fp/fixunssfdi.c: Likewise.
+ * soft-fp/fixunssfsi.c: Likewise.
+ * soft-fp/fixunssfti.c: Likewise.
+ * soft-fp/fixunstfdi.c: Likewise.
+ * soft-fp/fixunstfsi.c: Likewise.
+ * soft-fp/fixunstfti.c: Likewise.
+ * soft-fp/floatdidf.c: Likewise.
+ * soft-fp/floatdisf.c: Likewise.
+ * soft-fp/floatditf.c: Likewise.
+ * soft-fp/floatsidf.c: Likewise.
+ * soft-fp/floatsisf.c: Likewise.
+ * soft-fp/floatsitf.c: Likewise.
+ * soft-fp/floattidf.c: Likewise.
+ * soft-fp/floattihf.c: Likewise.
+ * soft-fp/floattisf.c: Likewise.
+ * soft-fp/floattitf.c: Likewise.
+ * soft-fp/floatundidf.c: Likewise.
+ * soft-fp/floatundisf.c: Likewise.
+ * soft-fp/floatunditf.c: Likewise.
+ * soft-fp/floatunsidf.c: Likewise.
+ * soft-fp/floatunsisf.c: Likewise.
+ * soft-fp/floatunsitf.c: Likewise.
+ * soft-fp/floatuntidf.c: Likewise.
+ * soft-fp/floatuntihf.c: Likewise.
+ * soft-fp/floatuntisf.c: Likewise.
+ * soft-fp/floatuntitf.c: Likewise.
+ * soft-fp/gedf2.c: Likewise.
+ * soft-fp/gesf2.c: Likewise.
+ * soft-fp/getf2.c: Likewise.
+ * soft-fp/half.h: Likewise.
+ * soft-fp/ledf2.c: Likewise.
+ * soft-fp/lesf2.c: Likewise.
+ * soft-fp/letf2.c: Likewise.
+ * soft-fp/muldf3.c: Likewise.
+ * soft-fp/mulsf3.c: Likewise.
+ * soft-fp/multf3.c: Likewise.
+ * soft-fp/negdf2.c: Likewise.
+ * soft-fp/negsf2.c: Likewise.
+ * soft-fp/negtf2.c: Likewise.
+ * soft-fp/op-1.h: Likewise.
+ * soft-fp/op-2.h: Likewise.
+ * soft-fp/op-4.h: Likewise.
+ * soft-fp/op-8.h: Likewise.
+ * soft-fp/op-common.h: Likewise.
+ * soft-fp/quad.h: Likewise.
+ * soft-fp/single.h: Likewise.
+ * soft-fp/soft-fp.h: Likewise.
+ * soft-fp/subdf3.c: Likewise.
+ * soft-fp/subsf3.c: Likewise.
+ * soft-fp/subtf3.c: Likewise.
+ * soft-fp/truncdfsf2.c: Likewise.
+ * soft-fp/trunctfdf2.c: Likewise.
+ * soft-fp/trunctfhf2.c: Likewise.
+ * soft-fp/trunctfsf2.c: Likewise.
+ * soft-fp/trunctfxf2.c: Likewise.
+ * soft-fp/unorddf2.c: Likewise.
+ * soft-fp/unordsf2.c: Likewise.
+ * soft-fp/unordtf2.c: Likewise.
+
+2018-11-04 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
+
+ * config/i386/cpuinfo.c: (get_amd_cpu): Add znver2.
+ * config/i386/cpuinfo.h (processor_types): Add znver2.
+
+2018-11-01 Paul Koning <ni1d@arrl.net>
+
+ * config/pdp11/t-pdp11 (LIB2ADD): Add divmod.c.
+ (HOST_LIBGCC2_CFLAGS): Change to optimize for size.
+
+2018-10-31 Joseph Myers <joseph@codesourcery.com>
+
+ PR bootstrap/82856
+ * configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
+ * configure: Regenerate.
+
+2018-10-31 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/lib1funcs.S (_muldi3): New function.
+ * config/arc/t-arc (LIB1ASMFUNCS): Add _muldi3.
+
+2018-10-30 Rasmus Villemoes <rv@rasmusvillemoes.dk>
+
+ * config/gthr-vxworks.h (__gthread_mutex_destroy): Call semDelete.
+
+2018-10-25 Martin Liska <mliska@suse.cz>
+
+ PR other/87735
+ * libgcov-profiler.c: Revert.
+
+2018-10-24 Martin Liska <mliska@suse.cz>
+
+ * libgcov-profiler.c: Start from 1 in order to distinguish
+ functions which were seen and these that were not.
+
+2018-10-18 Paul Koning <ni1d@arrl.net>
+
+ * udivmodsi4.c (__udivmodsi4): Rename to conform to coding
+ standard.
+ * divmod.c: Update references to __udivmodsi4.
+ * udivmod.c: Ditto.
+ * udivhi3.c: New file.
+ * udivmodhi4.c: New file.
+ * config/pdp11/t-pdp11 (LIB2ADD): Add the new files.
+
+2018-10-17 Rasmus Villemoes <rv@rasmusvillemoes.dk>
+
+ * Makefile.in (LIB2FUNCS_ST): Filter out LIB2FUNCS_EXCLUDE.
+
+2018-10-12 Olivier Hainque <hainque@adacore.com>
+
+ * config/rs6000/ibm-ldouble.c: Augment the toplevel guard with
+ defined (__FLOAT128_TYPE__) || defined (__LONG_DOUBLE_128__).
+
+2018-10-08 Paul Koning <ni1d@arrl.net>
+
+ * config/pdp11/t-pdp11: Remove -mfloat32 switch.
+
+2018-10-04 Martin Liska <mliska@suse.cz>
+
+ PR gcov-profile/84107
+ * libgcov-profiler.c (__gcov_indirect_call):
+ Change type to indirect_call_tuple.
+ (struct indirect_call_tuple): New struct.
+ (__gcov_indirect_call_topn_profiler): Change type.
+ (__gcov_indirect_call_profiler_v2): Use the new
+ variables.
+ * libgcov.h (struct indirect_call_tuple): New struct
+ definition.
+
+2018-10-03 Uros Bizjak <ubizjak@gmail.com>
+
+ * libgcc2.c (isnan): Use __builtin_isnan.
+ (isfinite): Use __builtin_isfinite.
+ (isinf): Use __builtin_isinf.
+
+2018-09-26 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/crtprec.c (set_precision): Use fnstcw instead of fstcw.
+
+2018-09-21 Alexandre Oliva <oliva@adacore.com>
+
+ * config/vxcache.c: New file. Provide __clear_cache, based on
+ the cacheTextUpdate VxWorks service.
+ * config/t-vxworks (LIB2ADD): Add vxcache.c.
+ (LIB2FUNCS_EXCLUDE): Add _clear_cache.
+ * config/t-vxwoks7: Likewise.
+
+2018-09-21 Martin Liska <mliska@suse.cz>
+
+ * libgcov-driver.c (crc32_unsigned): Remove.
+ (gcov_histogram_insert): Likewise.
+ (gcov_compute_histogram): Likewise.
+ (compute_summary): Simplify rapidly.
+ (merge_one_data): Do not handle PROGRAM_SUMMARY tag.
+ (merge_summary): Rapidly simplify.
+ (dump_one_gcov): Ignore gcov_summary.
+ (gcov_do_dump): Do not handle program summary, it's not
+ used.
+ * libgcov-util.c (tag_summary): Remove.
+ (read_gcda_finalize): Fix coding style.
+ (read_gcda_file): Initialize curr_object_summary.
+ (compute_summary): Remove.
+ (calculate_overlap): Remove settings of run_max.
+
+2018-09-21 Monk Chiang <sh.chiang04@gmail.com>
+
+ * config/nds32/linux-unwind.h (struct _rt_sigframe): Use struct
+ ucontext_t type instead.
+ (nds32_fallback_frame_state): Remove struct _sigframe statement.
+
+2018-09-21 Kito Cheng <kito.cheng@gmail.com>
+
+ * config/nds32/t-nds32-glibc: New file.
+
+2018-09-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * configure.ac (solaris_ld_v2_maps): New test.
+ * configure: Regenerate.
+ * Makefile.in (solaris_ld_v2_maps): New variable.
+ * config/t-slibgcc-sld (libgcc-unwind.map): Emit v2 mapfile syntax
+ if supported.
+
+2018-08-23 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/86951
+ * config/arm/lib1funcs.asm (speculation_barrier): New function.
+ * config/arm/t-arm (LIB1ASMFUNCS): Add it to list of functions
+ to build.
+
+2018-08-22 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config/unwind-dw2-fde-darwin.c
+ (_darwin10_Unwind_FindEnclosingFunction): move from here ...
+ * config/darwin10-unwind-find-enc-func.c: … to here.
+ * config/t-darwin: Build Darwin10 unwinder shim crt.
+ * libgcc/config.host: Add the Darwin10 unwinder shim.
+
+2018-08-21 Rasmus Villemoes <rv@rasmusvillemoes.dk>
+
+ * config.host: Add crtbegin.o and crtend.o for
+ powerpc-wrs-vxworks target.
+
+2018-08-17 Jojo <jijie_rong@c-sky.com>
+ Huibin Wang <huibin_wang@c-sky.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+ Chung-Lin Tang <cltang@codesourcery.com>
+
+ C-SKY port: libgcc
+
+ * config.host: Add C-SKY support.
+ * config/csky/*: New.
+
+2018-08-12 Chung-Ju Wu <jasonwucj@gmail.com>
+
+ * config/nds32/t-nds32-isr: Rearrange object dependency.
+ * config/nds32/initfini.c: Add dwarf2 unwinding support.
+ * config/nds32/isr-library/adj_intr_lvl.inc: Consider new extensions
+ and registers usage.
+ * config/nds32/isr-library/excp_isr.S: Ditto.
+ * config/nds32/isr-library/intr_isr.S: Ditto.
+ * config/nds32/isr-library/reset.S: Ditto.
+ * config/nds32/isr-library/restore_all.inc: Ditto.
+ * config/nds32/isr-library/restore_mac_regs.inc: Ditto.
+ * config/nds32/isr-library/restore_partial.inc: Ditto.
+ * config/nds32/isr-library/restore_usr_regs.inc: Ditto.
+ * config/nds32/isr-library/save_all.inc: Ditto.
+ * config/nds32/isr-library/save_mac_regs.inc: Ditto.
+ * config/nds32/isr-library/save_partial.inc: Ditto.
+ * config/nds32/isr-library/save_usr_regs.inc: Ditto.
+ * config/nds32/isr-library/vec_vid*.S: Consider 4-byte vector size.
+
+2018-08-11 John David Anglin <danglin@gcc.gnu.org>
+
+ * config/pa/linux-atomic.c: Update comment.
+ (FETCH_AND_OP_2, OP_AND_FETCH_2, FETCH_AND_OP_WORD, OP_AND_FETCH_WORD,
+ COMPARE_AND_SWAP_2, __sync_val_compare_and_swap_4,
+ SYNC_LOCK_TEST_AND_SET_2, __sync_lock_test_and_set_4): Use
+ __ATOMIC_RELAXED for atomic loads.
+ (SYNC_LOCK_RELEASE_1): New define. Use __sync_synchronize() and
+ unordered store to release lock.
+ (__sync_lock_release_8): Likewise.
+ (SYNC_LOCK_RELEASE_2): Remove define.
+
+2018-08-02 Nicolas Pitre <nico@fluxnic.net>
+
+ PR libgcc/86512
+ * config/arm/ieee754-df.S: Don't shortcut denormal handling when
+ exponent goes negative. Update my email address.
+ * config/arm/ieee754-sf.S: Likewise.
+
+2018-08-01 Martin Liska <mliska@suse.cz>
+
+ * libgcov-profiler.c (__gcov_indirect_call_profiler_v2): Do not
+ check that __gcov_indirect_call_callee is non-null.
+
+2018-07-30 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * config/arm/ieee754-df.S: Fix comment for code working on
+ architectures >= 4.
+ * config/arm/ieee754-sf.S: Likewise.
+
+2018-07-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR libgcc/85334
+ * config/i386/shadow-stack-unwind.h (_Unwind_Frames_Increment):
+ Removed.
+
2018-07-05 James Clarke <jrtc27@jrtc27.com>
* configure: Regenerated.
@@ -58,30 +1122,30 @@
2018-06-07 Martin Liska <mliska@suse.cz>
* libgcov-driver.c: Rename cs_all to all and assign it from
- all_prg.
+ all_prg.
2018-06-07 Martin Liska <mliska@suse.cz>
- PR bootstrap/86057
+ PR bootstrap/86057
* libgcov-driver-system.c (replace_filename_variables): Use
- memcpy instead of mempcpy.
+ memcpy instead of mempcpy.
(allocate_filename_struct): Do not allocate filename, allocate
- prefix and set it.
+ prefix and set it.
(gcov_exit_open_gcda_file): Allocate memory for gf->filename
- here and properly copy content into it.
+ here and properly copy content into it.
* libgcov-driver.c (struct gcov_filename): Remove max_length
- field, change prefix from size_t into char *.
+ field, change prefix from size_t into char *.
(compute_summary): Do not calculate longest filename.
(gcov_do_dump): Release memory of gf.filename after each file.
* libgcov-util.c (compute_summary): Use new signature of
- compute_summary.
+ compute_summary.
(calculate_overlap): Likewise.
2018-06-05 Martin Liska <mliska@suse.cz>
PR gcov-profile/47618
* libgcov-driver-system.c (replace_filename_variables): New
- function.
+ function.
(gcov_exit_open_gcda_file): Use it.
2018-06-05 Martin Liska <mliska@suse.cz>
@@ -112,15 +1176,15 @@
2018-05-30 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
- * crtstuff.c: Remove declaration of _Jv_RegisterClasses.
+ * crtstuff.c: Remove declaration of _Jv_RegisterClasses.
2018-05-29 Martin Liska <mliska@suse.cz>
- PR gcov-profile/85759
+ PR gcov-profile/85759
* libgcov-driver-system.c (gcov_error): Introduce usage of
- GCOV_EXIT_AT_ERROR env. variable.
+ GCOV_EXIT_AT_ERROR env. variable.
* libgcov-driver.c (merge_one_data): Print error that we
- overwrite a gcov file with a different timestamp.
+ overwrite a gcov file with a different timestamp.
2018-05-23 Kalamatee <kalamatee@gmail.com>
@@ -284,7 +1348,7 @@
* config/pa/fptr.c (_dl_read_access_allowed): New.
(__canonicalize_funcptr_for_compare): Use it.
-
+
2018-02-28 Jakub Jelinek <jakub@redhat.com>
PR debug/83917
@@ -381,21 +1445,21 @@
* config/rl78/t-rl78: Added smindi3.S to LIB2ADD.
2018-01-22 Sebastian Perta <sebastian.perta@renesas.com>
-
+
* config/rl78/smaxdi3.S: New assembly file.
* config/rl78/t-rl78: Added smaxdi3.S to LIB2ADD.
2018-01-22 Sebastian Perta <sebastian.perta@renesas.com>
-
+
* config/rl78/umaxdi3.S: New assembly file.
* config/rl78/t-rl78: Added umaxdi3.S to LIB2ADD.
-
+
2018-01-21 John David Anglin <danglin@gcc.gnu.org>
PR lto/83452
* config/pa/stublib.c (L_gnu_lto_v1): New stub definition.
* config/pa/t-stublib (gnu_lto_v1-stub.o): Add make fragment.
-
+
2018-01-13 Richard Sandiford <richard.sandiford@linaro.org>
* config/aarch64/value-unwind.h (aarch64_vg): New function.
@@ -704,8 +1768,8 @@
config/i386/enable-execute-stack-mingw32.c
2017-08-01 Jerome Lambourg <lambourg@adacore.com>
- Doug Rupp <rupp@adacore.com>
- Olivier Hainque <hainque@adacore.com>
+ Doug Rupp <rupp@adacore.com>
+ Olivier Hainque <hainque@adacore.com>
* config.host (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7
as well as arm-wrs-vxworks.
@@ -841,10 +1905,10 @@
Matthieu Sarter <matthieu.sarter.external@atos.net>
David Edelsohn <dje.gcc@gmail.com>
- * config/rs6000/aix-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Define
- unconditionally.
- (ucontext_for): Add 64-bit AIX 6.1, 7.1, 7.2 support. Add 32-bit
- AIX 7.2 support.
+ * config/rs6000/aix-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Define
+ unconditionally.
+ (ucontext_for): Add 64-bit AIX 6.1, 7.1, 7.2 support. Add 32-bit
+ AIX 7.2 support.
2017-06-02 Olivier Hainque <hainque@adacore.com>
@@ -9320,7 +10384,7 @@
shared-object.mk, siditi-object.mk, static-object.mk: New files.
* configure: Generated.
-Copyright (C) 2007-2018 Free Software Foundation, Inc.
+Copyright (C) 2007-2019 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
index 0c5b264f717..5608352a900 100644
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -1,6 +1,6 @@
# Makefile.in
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
@@ -44,6 +44,7 @@ enable_vtable_verify = @enable_vtable_verify@
enable_decimal_float = @enable_decimal_float@
fixed_point = @fixed_point@
with_aix_soname = @with_aix_soname@
+solaris_ld_v2_maps = @solaris_ld_v2_maps@
enable_execute_stack = @enable_execute_stack@
unwind_header = @unwind_header@
md_unwind_header = @md_unwind_header@
@@ -258,6 +259,8 @@ PICFLAG = @PICFLAG@
CET_FLAGS = @CET_FLAGS@
+USE_TM_CLONE_REGISTRY = @use_tm_clone_registry@
+
# Defined in libgcc2.c, included only in the static library.
LIB2FUNCS_ST = _eprintf __gcc_bcmp
@@ -298,7 +301,7 @@ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
$(NO_PIE_CFLAGS) -finhibit-size-directive -fno-inline -fno-exceptions \
-fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
-fbuilding-libgcc -fno-stack-protector $(FORCE_EXPLICIT_EH_REGISTRY) \
- $(INHIBIT_LIBC_CFLAGS)
+ $(INHIBIT_LIBC_CFLAGS) $(USE_TM_CLONE_REGISTRY)
# Extra flags to use when compiling crt{begin,end}.o.
CRTSTUFF_T_CFLAGS =
@@ -471,6 +474,8 @@ lib2funcs := $(filter-out $(LIB2FUNCS_EXCLUDE) $(LIB1ASMFUNCS),$(lib2funcs))
LIB2_DIVMOD_FUNCS := $(filter-out $(LIB2FUNCS_EXCLUDE) $(LIB1ASMFUNCS), \
$(LIB2_DIVMOD_FUNCS))
+LIB2FUNCS_ST := $(filter-out $(LIB2FUNCS_EXCLUDE),$(LIB2FUNCS_ST))
+
# Build "libgcc1" (assembly) components.
lib1asmfuncs-o = $(patsubst %,%$(objext),$(LIB1ASMFUNCS))
@@ -884,21 +889,20 @@ include $(iterator)
# Build libgcov components.
-LIBGCOV_MERGE = _gcov_merge_add _gcov_merge_single \
- _gcov_merge_ior _gcov_merge_time_profile _gcov_merge_icall_topn
+LIBGCOV_MERGE = _gcov_merge_add _gcov_merge_topn \
+ _gcov_merge_ior _gcov_merge_time_profile
LIBGCOV_PROFILER = _gcov_interval_profiler \
_gcov_interval_profiler_atomic \
_gcov_pow2_profiler \
_gcov_pow2_profiler_atomic \
- _gcov_one_value_profiler \
- _gcov_one_value_profiler_atomic \
+ _gcov_topn_values_profiler \
+ _gcov_topn_values_profiler_atomic \
_gcov_average_profiler \
_gcov_average_profiler_atomic \
_gcov_ior_profiler \
_gcov_ior_profiler_atomic \
- _gcov_indirect_call_profiler_v2 \
- _gcov_time_profiler \
- _gcov_indirect_call_topn_profiler
+ _gcov_indirect_call_profiler_v4 \
+ _gcov_time_profiler
LIBGCOV_INTERFACE = _gcov_dump _gcov_flush _gcov_fork \
_gcov_execl _gcov_execlp \
_gcov_execle _gcov_execv _gcov_execvp _gcov_execve _gcov_reset
diff --git a/libgcc/config.host b/libgcc/config.host
index 18cabaf24f6..bc3e497739f 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -1,5 +1,5 @@
# libgcc host-specific configuration file.
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2019 Free Software Foundation, Inc.
#This file is part of GCC.
@@ -91,6 +91,10 @@ alpha*-*-*)
am33_2.0-*-linux*)
cpu_type=mn10300
;;
+amdgcn*-*-*)
+ cpu_type=gcn
+ tmake_file="${tmake_file} t-softfp-sfdf t-softfp"
+ ;;
arc*-*-*)
cpu_type=arc
;;
@@ -103,11 +107,17 @@ avr-*-*)
bfin*-*)
cpu_type=bfin
;;
+bpf-*-*)
+ cpu_type=bpf
+ ;;
cr16-*-*)
;;
crisv32-*-*)
cpu_type=cris
;;
+csky*-*-*)
+ cpu_type=csky
+ ;;
fido-*-*)
cpu_type=m68k
;;
@@ -162,9 +172,15 @@ nds32*-*)
nios2*-*-*)
cpu_type=nios2
;;
+or1k*-*-*)
+ cpu_type=or1k
+ ;;
powerpc*-*-*)
cpu_type=rs6000
;;
+pru-*-*)
+ cpu_type=pru
+ ;;
rs6000*-*-*)
;;
riscv*-*-*)
@@ -176,9 +192,6 @@ sparc64*-*-*)
sparc*-*-*)
cpu_type=sparc
;;
-spu*-*-*)
- cpu_type=spu
- ;;
s390*-*-*)
cpu_type=s390
;;
@@ -205,7 +218,7 @@ case ${host} in
*-*-darwin*)
asm_hidden_op=.private_extern
tmake_file="$tmake_file t-darwin ${cpu_type}/t-darwin t-libgcc-pic t-slibgcc-darwin"
- extra_parts="crt3.o crttms.o crttme.o"
+ extra_parts="crt3.o d10-uwfef.o crttms.o crttme.o"
;;
*-*-dragonfly*)
tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
@@ -235,7 +248,7 @@ case ${host} in
tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia"
extra_parts="crtbegin.o crtend.o"
;;
-*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
+*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux"
extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
if test x$enable_vtable_verify = xyes; then
@@ -284,11 +297,11 @@ case ${host} in
extra_parts="$extra_parts crtbeginS.o crtendS.o"
else
case ${host} in
- i?86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]*)
+ i?86-*-solaris2* | x86_64-*-solaris2*)
# Solaris 10+/x86 provides crt1.o, crti.o, crtn.o, and gcrt1.o as
# part of the base system.
;;
- sparc*-*-solaris2.1[0-9]*)
+ sparc*-*-solaris2*)
# Solaris 10+/SPARC lacks crt1.o and gcrt1.o.
extra_parts="$extra_parts crt1.o gcrt1.o"
;;
@@ -308,6 +321,9 @@ case ${host} in
*-*-vxworks7*)
tmake_file=t-vxworks7
;;
+*-*-vxworksae*)
+ tmake_file=t-vxworksae
+ ;;
*-*-vxworks*)
tmake_file=t-vxworks
;;
@@ -316,6 +332,16 @@ case ${host} in
;;
esac
+# Except on ARM where we do not use DWARF, table based EH on VxWorks
+# relies on specially crafted crtstuff files
+case ${host} in
+arm-*-vxworks*)
+ ;;
+*-*-vxworks*)
+ tmake_file="${tmake_file} t-vxcrtstuff"
+ ;;
+esac
+
case ${host} in
*-*-darwin* | *-*-dragonfly* | *-*-freebsd* | *-*-netbsd* | *-*-openbsd* | \
*-*-solaris2*)
@@ -337,23 +363,39 @@ aarch64*-*-elf | aarch64*-*-rtems*)
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
extra_parts="$extra_parts crtfastmath.o"
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+ tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
md_unwind_header=aarch64/aarch64-unwind.h
;;
aarch64*-*-freebsd*)
extra_parts="$extra_parts crtfastmath.o"
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+ tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
md_unwind_header=aarch64/freebsd-unwind.h
;;
+aarch64*-*-netbsd*)
+ extra_parts="$extra_parts crtfastmath.o"
+ tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+ tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
+ md_unwind_header=aarch64/aarch64-unwind.h
+ ;;
aarch64*-*-fuchsia*)
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+ tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp"
;;
aarch64*-*-linux*)
extra_parts="$extra_parts crtfastmath.o"
md_unwind_header=aarch64/linux-unwind.h
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+ tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
+ tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
+ ;;
+aarch64*-*-vxworks7*)
+ extra_parts="$extra_parts crtfastmath.o"
+ md_unwind_header=aarch64/aarch64-unwind.h
+ tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
;;
alpha*-*-linux*)
@@ -381,6 +423,10 @@ alpha*-dec-*vms*)
extra_parts="$extra_parts vms-dwarf2.o vms-dwarf2eh.o"
md_unwind_header=alpha/vms-unwind.h
;;
+amdgcn*-*-amdhsa)
+ tmake_file="$tmake_file gcn/t-amdgcn"
+ extra_parts="crt0.o"
+ ;;
arc*-*-elf*)
tmake_file="arc/t-arc"
extra_parts="crti.o crtn.o crtend.o crtbegin.o crtendS.o crtbeginS.o"
@@ -392,18 +438,12 @@ arc*-*-linux*)
extra_parts="$extra_parts crttls.o"
md_unwind_header=arc/linux-unwind.h
;;
-arm-wrs-vxworks|arm-wrs-vxworks7)
- tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+arm-wrs-vxworks7*)
+ tmake_file="$tmake_file arm/t-arm arm/t-elf arm/t-bpabi arm/t-vxworks7"
+ tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
+ tm_file="$tm_file arm/bpabi-lib.h"
+ unwind_header=config/arm/unwind-arm.h
extra_parts="$extra_parts crti.o crtn.o"
- case ${host} in
- *-*-vxworks7)
- # Note that arm/t-bpabi will reset the LIB2ADDEH macro.
- # This is intentional.
- tmake_file="$tmake_file arm/t-bpabi arm/t-vxworks7"
- tm_file="$tm_file arm/bpabi-lib.h"
- unwind_header=config/arm/unwind-arm.h
- ;;
- esac
;;
arm*-*-freebsd*) # ARM FreeBSD EABI
tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix arm/t-elf"
@@ -419,9 +459,18 @@ arm*-*-fuchsia*)
unwind_header=config/arm/unwind-arm.h
;;
arm*-*-netbsdelf*)
- tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"
+ tmake_file="$tmake_file arm/t-arm"
+ case ${host} in
+ arm*-*-netbsdelf-*eabi*)
+ tmake_file="${tmake_file} arm/t-netbsd-eabi"
+ unwind_header=config/arm/unwind-arm.h
+ ;;
+ *)
+ tmake_file="${tmake_file} arm/t-netbsd t-slibgcc-gld-nover"
+ ;;
+ esac
;;
-arm*-*-linux*) # ARM GNU/Linux with ELF
+arm*-*-linux* | arm*-*-uclinuxfdpiceabi)
tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix t-crtfm"
tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
tm_file="$tm_file arm/bpabi-lib.h"
@@ -469,6 +518,9 @@ avr-*-*)
tmake_file="$tmake_file ${cpu_type}/t-avrlibc"
fi
tm_file="$tm_file avr/avr-lib.h"
+ if test x${with_fixed_point} = xno; then
+ fixed_point=no
+ fi
;;
bfin*-elf*)
tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-libgcc-pic t-fdpbit"
@@ -494,6 +546,10 @@ bfin*-*)
tmake_file="$tmake_file bfin/t-bfin t-fdpbit"
extra_parts="crtbegin.o crtend.o crti.o crtn.o"
;;
+bpf-*-*)
+ tmake_file="$tmake_file ${cpu_type}/t-${cpu_type}"
+ extra_parts="crti.o crtn.o"
+ ;;
cr16-*-elf)
tmake_file="${tmake_file} cr16/t-cr16 cr16/t-crtlibid t-fdpbit"
extra_parts="$extra_parts crti.o crtn.o crtlibid.o"
@@ -507,6 +563,15 @@ cris-*-elf)
cris-*-linux* | crisv32-*-linux*)
tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp cris/t-linux"
;;
+csky-*-elf*)
+ tmake_file="csky/t-csky t-fdpbit"
+ extra_parts="$extra_parts crti.o crtn.o"
+ ;;
+csky-*-linux*)
+ tmake_file="$tmake_file csky/t-csky t-slibgcc-libgcc t-fdpbit csky/t-linux-csky"
+ extra_parts="$extra_parts crti.o crtn.o"
+ md_unwind_header=csky/linux-unwind.h
+ ;;
epiphany-*-elf* | epiphany-*-rtems*)
tmake_file="$tmake_file epiphany/t-epiphany t-fdpbit epiphany/t-custom-eqsf"
extra_parts="$extra_parts crti.o crtint.o crtrunc.o crtm1reg-r43.o crtm1reg-r63.o crtn.o"
@@ -593,6 +658,9 @@ hppa[12]*-*-hpux11*)
hppa*-*-openbsd*)
tmake_file="$tmake_file pa/t-openbsd"
;;
+hppa*-*-netbsd*)
+ tmake_file="$tmake_file pa/t-netbsd"
+ ;;
i[34567]86-*-darwin*)
tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
tm_file="$tm_file i386/darwin-lib.h"
@@ -680,7 +748,7 @@ i[34567]86-*-rtems*)
tmake_file="$tmake_file i386/t-crtstuff t-softfp-sfdftf i386/32/t-softfp i386/t-softfp t-softfp"
extra_parts="$extra_parts crti.o crtn.o"
;;
-i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
+i[34567]86-*-solaris2* | x86_64-*-solaris2*)
tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
tm_file="${tm_file} i386/elf-lib.h"
@@ -1027,6 +1095,15 @@ nios2-*-*)
tmake_file="$tmake_file nios2/t-nios2 t-softfp-sfdf t-softfp-excl t-softfp"
extra_parts="$extra_parts crti.o crtn.o"
;;
+or1k-*-linux*)
+ tmake_file="$tmake_file or1k/t-or1k"
+ tmake_file="$tmake_file t-softfp-sfdf t-softfp"
+ md_unwind_header=or1k/linux-unwind.h
+ ;;
+or1k-*-*)
+ tmake_file="$tmake_file or1k/t-or1k"
+ tmake_file="$tmake_file t-softfp-sfdf t-softfp"
+ ;;
pdp11-*-*)
tmake_file="pdp11/t-pdp11 t-fdpbit"
;;
@@ -1040,12 +1117,12 @@ powerpc-*-darwin*)
md_unwind_header=rs6000/darwin-unwind.h
;;
esac
- tmake_file="$tmake_file rs6000/t-ibm-ldouble"
- extra_parts="$extra_parts crt2.o"
+ tmake_file="$tmake_file rs6000/t-ppc64-fp rs6000/t-ibm-ldouble"
+ extra_parts="$extra_parts crt2.o crt3_2.o libef_ppc.a dw_ppc.o"
;;
powerpc64-*-darwin*)
tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble"
- extra_parts="$extra_parts crt2.o"
+ extra_parts="$extra_parts crt2.o crt3_2.o libef_ppc.a dw_ppc.o"
;;
powerpc*-*-freebsd*)
tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp"
@@ -1129,6 +1206,7 @@ powerpc*-*-linux*)
;;
powerpc-wrs-vxworks*)
tmake_file="$tmake_file rs6000/t-ppccomm rs6000/t-savresfgpr t-fdpbit"
+ extra_parts="$extra_parts crtbegin.o crtend.o"
;;
powerpc-*-lynxos*)
tmake_file="$tmake_file rs6000/t-lynx t-fdpbit"
@@ -1145,13 +1223,17 @@ powerpcle-*-eabi*)
tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
;;
+pru-*-*)
+ tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp t-gnu-prefix pru/t-pru"
+ tm_file="$tm_file pru/pru-abi.h"
+ ;;
riscv*-*-linux*)
- tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"
+ tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address} t-slibgcc-libgcc"
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
md_unwind_header=riscv/linux-unwind.h
;;
riscv*-*-freebsd*)
- tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"
+ tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address} t-slibgcc-libgcc"
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
;;
riscv*-*-*)
@@ -1178,6 +1260,10 @@ rx-*-elf)
tmake_file="rx/t-rx t-fdpbit"
tm_file="$tm_file rx/rx-abi.h rx/rx-lib.h"
;;
+rx-*-linux*)
+ tmake_file="rx/t-rx t-fdpbit"
+ tm_file="$tm_file rx/rx-lib.h"
+ ;;
s390-*-linux*)
tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi t-stack s390/t-stack-s390"
md_unwind_header=s390/linux-unwind.h
@@ -1307,13 +1393,6 @@ sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
;;
sparc64-*-netbsd*)
;;
-spu-*-elf*)
- tmake_file="$tmake_file spu/t-elf t-libgcc-pic t-fdpbit"
- extra_parts="$extra_parts \
- libgcc_cachemgr.a libgcc_cachemgr_nonatomic.a \
- libgcc_cache8k.a libgcc_cache16k.a libgcc_cache32k.a \
- libgcc_cache64k.a libgcc_cache128k.a"
- ;;
tic6x-*-uclinux)
tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp \
c6x/t-elf c6x/t-uclinux t-crtstuff-pic t-libgcc-pic \
@@ -1437,3 +1516,25 @@ aarch64*-*-*)
tm_file="${tm_file} aarch64/value-unwind.h"
;;
esac
+
+# The vxworks threads implementation relies on a few extra sources,
+# which we arrange to add after everything else:
+
+case ${target_thread_file} in
+vxworks)
+ case ${host} in
+ *-*-vxworksae)
+ tmake_file="${tmake_file} t-gthr-vxworksae"
+ ;;
+ *-*-vxworks*)
+ tmake_file="${tmake_file} t-gthr-vxworks"
+ ;;
+ esac
+esac
+
+case ${host} in
+*-*-musl*)
+ # The gthr weak references are unsafe with static linking
+ tmake_file="$tmake_file t-gthr-noweak"
+ ;;
+esac
diff --git a/libgcc/config.in b/libgcc/config.in
index d634af9d949..59a3d8daf52 100644
--- a/libgcc/config.in
+++ b/libgcc/config.in
@@ -43,6 +43,9 @@
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
+/* Define to 1 if you have the <sys/auxv.h> header file. */
+#undef HAVE_SYS_AUXV_H
+
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
@@ -82,6 +85,11 @@
/* Define to 1 if the target use emutls for thread-local storage. */
#undef USE_EMUTLS
+/* Enable large inode numbers on Mac OS X 10.5. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
diff --git a/libgcc/config/aarch64/aarch64-unwind.h b/libgcc/config/aarch64/aarch64-unwind.h
index ff05226f49c..13e6e4a6a01 100644
--- a/libgcc/config/aarch64/aarch64-unwind.h
+++ b/libgcc/config/aarch64/aarch64-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2019 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GCC.
@@ -35,6 +35,23 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define MD_FROB_UPDATE_CONTEXT(context, fs) \
aarch64_frob_update_context (context, fs)
+static inline int
+aarch64_cie_signed_with_b_key (struct _Unwind_Context *context)
+{
+ const struct dwarf_fde *fde = _Unwind_Find_FDE (context->bases.func,
+ &context->bases);
+ if (fde != NULL)
+ {
+ const struct dwarf_cie *cie = get_cie (fde);
+ if (cie != NULL)
+ {
+ char *aug_str = cie->augmentation;
+ return strchr (aug_str, 'B') == NULL ? 0 : 1;
+ }
+ }
+ return 0;
+}
+
/* Do AArch64 private extraction on ADDR based on context info CONTEXT and
unwind frame info FS. If ADDR is signed, we do address authentication on it
using CFA of current frame. */
@@ -43,9 +60,11 @@ static inline void *
aarch64_post_extract_frame_addr (struct _Unwind_Context *context,
_Unwind_FrameState *fs, void *addr)
{
- if (fs->regs.reg[DWARF_REGNUM_AARCH64_RA_STATE].loc.offset & 0x1)
+ if (context->flags & RA_SIGNED_BIT)
{
_Unwind_Word salt = (_Unwind_Word) context->cfa;
+ if (aarch64_cie_signed_with_b_key (context) != 0)
+ return __builtin_aarch64_autib1716 (addr, salt);
return __builtin_aarch64_autia1716 (addr, salt);
}
else
@@ -62,9 +81,14 @@ aarch64_post_frob_eh_handler_addr (struct _Unwind_Context *current,
ATTRIBUTE_UNUSED,
void *handler_addr)
{
- if (current->flags & RA_A_SIGNED_BIT)
- return __builtin_aarch64_pacia1716 (handler_addr,
+ if (current->flags & RA_SIGNED_BIT)
+ {
+ if (aarch64_cie_signed_with_b_key (current))
+ return __builtin_aarch64_pacib1716 (handler_addr,
+ (_Unwind_Word) current->cfa);
+ return __builtin_aarch64_pacia1716 (handler_addr,
(_Unwind_Word) current->cfa);
+ }
else
return handler_addr;
}
@@ -79,7 +103,7 @@ aarch64_frob_update_context (struct _Unwind_Context *context,
{
if (fs->regs.reg[DWARF_REGNUM_AARCH64_RA_STATE].loc.offset & 0x1)
/* The flag is used for re-authenticating EH handler's address. */
- context->flags |= RA_A_SIGNED_BIT;
+ context->flags |= RA_SIGNED_BIT;
return;
}
diff --git a/libgcc/config/aarch64/crtfastmath.c b/libgcc/config/aarch64/crtfastmath.c
index 31592ace880..3a3a40a7850 100644
--- a/libgcc/config/aarch64/crtfastmath.c
+++ b/libgcc/config/aarch64/crtfastmath.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2014-2019 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/aarch64/crti.S b/libgcc/config/aarch64/crti.S
index a56ab62b357..268e3e7d115 100644
--- a/libgcc/config/aarch64/crti.S
+++ b/libgcc/config/aarch64/crti.S
@@ -1,5 +1,5 @@
# Machine description for AArch64 architecture.
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
# Contributed by ARM Ltd.
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/aarch64/crtn.S b/libgcc/config/aarch64/crtn.S
index cec9d729e87..93ba03ed6ca 100644
--- a/libgcc/config/aarch64/crtn.S
+++ b/libgcc/config/aarch64/crtn.S
@@ -1,5 +1,5 @@
# Machine description for AArch64 architecture.
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
# Contributed by ARM Ltd.
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/aarch64/freebsd-unwind.h b/libgcc/config/aarch64/freebsd-unwind.h
index 57dba20b2af..e0ca978b6e8 100644
--- a/libgcc/config/aarch64/freebsd-unwind.h
+++ b/libgcc/config/aarch64/freebsd-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for FreeBSD/ARM64 (aarch64).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
Contributed by John Marino <gnugcc@marino.st>
This file is part of GCC.
diff --git a/libgcc/config/aarch64/linux-unwind.h b/libgcc/config/aarch64/linux-unwind.h
index e27ec86185e..ac1af97b377 100644
--- a/libgcc/config/aarch64/linux-unwind.h
+++ b/libgcc/config/aarch64/linux-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/aarch64/lse-init.c b/libgcc/config/aarch64/lse-init.c
new file mode 100644
index 00000000000..1a8f4c55213
--- /dev/null
+++ b/libgcc/config/aarch64/lse-init.c
@@ -0,0 +1,47 @@
+/* Out-of-line LSE atomics for AArch64 architecture, Init.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+ Contributed by Linaro Ltd.
+
+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/>. */
+
+#include "auto-target.h"
+
+/* Define the symbol gating the LSE implementations. */
+_Bool __aarch64_have_lse_atomics
+ __attribute__((visibility("hidden"), nocommon));
+
+/* Disable initialization of __aarch64_have_lse_atomics during bootstrap. */
+#if !defined(inhibit_libc) && defined(HAVE_SYS_AUXV_H)
+# include <sys/auxv.h>
+
+/* Disable initialization if the system headers are too old. */
+# if defined(AT_HWCAP) && defined(HWCAP_ATOMICS)
+
+static void __attribute__((constructor))
+init_have_lse_atomics (void)
+{
+ unsigned long hwcap = getauxval (AT_HWCAP);
+ __aarch64_have_lse_atomics = (hwcap & HWCAP_ATOMICS) != 0;
+}
+
+# endif /* HWCAP */
+#endif /* inhibit_libc */
diff --git a/libgcc/config/aarch64/lse.S b/libgcc/config/aarch64/lse.S
new file mode 100644
index 00000000000..c7979382ad7
--- /dev/null
+++ b/libgcc/config/aarch64/lse.S
@@ -0,0 +1,235 @@
+/* Out-of-line LSE atomics for AArch64 architecture.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+ Contributed by Linaro Ltd.
+
+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/>. */
+
+/*
+ * The problem that we are trying to solve is operating system deployment
+ * of ARMv8.1-Atomics, also known as Large System Exensions (LSE).
+ *
+ * There are a number of potential solutions for this problem which have
+ * been proposed and rejected for various reasons. To recap:
+ *
+ * (1) Multiple builds. The dynamic linker will examine /lib64/atomics/
+ * if HWCAP_ATOMICS is set, allowing entire libraries to be overwritten.
+ * However, not all Linux distributions are happy with multiple builds,
+ * and anyway it has no effect on main applications.
+ *
+ * (2) IFUNC. We could put these functions into libgcc_s.so, and have
+ * a single copy of each function for all DSOs. However, ARM is concerned
+ * that the branch-to-indirect-branch that is implied by using a PLT,
+ * as required by IFUNC, is too much overhead for smaller cpus.
+ *
+ * (3) Statically predicted direct branches. This is the approach that
+ * is taken here. These functions are linked into every DSO that uses them.
+ * All of the symbols are hidden, so that the functions are called via a
+ * direct branch. The choice of LSE vs non-LSE is done via one byte load
+ * followed by a well-predicted direct branch. The functions are compiled
+ * separately to minimize code size.
+ */
+
+/* Tell the assembler to accept LSE instructions. */
+ .arch armv8-a+lse
+
+/* Declare the symbol gating the LSE implementations. */
+ .hidden __aarch64_have_lse_atomics
+
+/* Turn size and memory model defines into mnemonic fragments. */
+#if SIZE == 1
+# define S b
+# define UXT uxtb
+#elif SIZE == 2
+# define S h
+# define UXT uxth
+#elif SIZE == 4 || SIZE == 8 || SIZE == 16
+# define S
+# define UXT mov
+#else
+# error
+#endif
+
+#if MODEL == 1
+# define SUFF _relax
+# define A
+# define L
+#elif MODEL == 2
+# define SUFF _acq
+# define A a
+# define L
+#elif MODEL == 3
+# define SUFF _rel
+# define A
+# define L l
+#elif MODEL == 4
+# define SUFF _acq_rel
+# define A a
+# define L l
+#else
+# error
+#endif
+
+/* Concatenate symbols. */
+#define glue2_(A, B) A ## B
+#define glue2(A, B) glue2_(A, B)
+#define glue3_(A, B, C) A ## B ## C
+#define glue3(A, B, C) glue3_(A, B, C)
+#define glue4_(A, B, C, D) A ## B ## C ## D
+#define glue4(A, B, C, D) glue4_(A, B, C, D)
+
+/* Select the size of a register, given a regno. */
+#define x(N) glue2(x, N)
+#define w(N) glue2(w, N)
+#if SIZE < 8
+# define s(N) w(N)
+#else
+# define s(N) x(N)
+#endif
+
+#define NAME(BASE) glue4(__aarch64_, BASE, SIZE, SUFF)
+#define LDXR glue4(ld, A, xr, S)
+#define STXR glue4(st, L, xr, S)
+
+/* Temporary registers used. Other than these, only the return value
+ register (x0) and the flags are modified. */
+#define tmp0 16
+#define tmp1 17
+#define tmp2 15
+
+/* Start and end a function. */
+.macro STARTFN name
+ .text
+ .balign 16
+ .globl \name
+ .hidden \name
+ .type \name, %function
+ .cfi_startproc
+\name:
+.endm
+
+.macro ENDFN name
+ .cfi_endproc
+ .size \name, . - \name
+.endm
+
+/* Branch to LABEL if LSE is disabled. */
+.macro JUMP_IF_NOT_LSE label
+ adrp x(tmp0), __aarch64_have_lse_atomics
+ ldrb w(tmp0), [x(tmp0), :lo12:__aarch64_have_lse_atomics]
+ cbz w(tmp0), \label
+.endm
+
+#ifdef L_cas
+
+STARTFN NAME(cas)
+ JUMP_IF_NOT_LSE 8f
+
+#if SIZE < 16
+#define CAS glue4(cas, A, L, S)
+
+ CAS s(0), s(1), [x2]
+ ret
+
+8: UXT s(tmp0), s(0)
+0: LDXR s(0), [x2]
+ cmp s(0), s(tmp0)
+ bne 1f
+ STXR w(tmp1), s(1), [x2]
+ cbnz w(tmp1), 0b
+1: ret
+
+#else
+#define LDXP glue3(ld, A, xp)
+#define STXP glue3(st, L, xp)
+#define CASP glue3(casp, A, L)
+
+ CASP x0, x1, x2, x3, [x4]
+ ret
+
+8: mov x(tmp0), x0
+ mov x(tmp1), x1
+0: LDXP x0, x1, [x4]
+ cmp x0, x(tmp0)
+ ccmp x1, x(tmp1), #0, eq
+ bne 1f
+ STXP w(tmp2), x(tmp0), x(tmp1), [x4]
+ cbnz w(tmp2), 0b
+1: ret
+
+#endif
+
+ENDFN NAME(cas)
+#endif
+
+#ifdef L_swp
+#define SWP glue4(swp, A, L, S)
+
+STARTFN NAME(swp)
+ JUMP_IF_NOT_LSE 8f
+
+ SWP s(0), s(0), [x1]
+ ret
+
+8: mov s(tmp0), s(0)
+0: LDXR s(0), [x1]
+ STXR w(tmp1), s(tmp0), [x1]
+ cbnz w(tmp1), 0b
+ ret
+
+ENDFN NAME(swp)
+#endif
+
+#if defined(L_ldadd) || defined(L_ldclr) \
+ || defined(L_ldeor) || defined(L_ldset)
+
+#ifdef L_ldadd
+#define LDNM ldadd
+#define OP add
+#elif defined(L_ldclr)
+#define LDNM ldclr
+#define OP bic
+#elif defined(L_ldeor)
+#define LDNM ldeor
+#define OP eor
+#elif defined(L_ldset)
+#define LDNM ldset
+#define OP orr
+#else
+#error
+#endif
+#define LDOP glue4(LDNM, A, L, S)
+
+STARTFN NAME(LDNM)
+ JUMP_IF_NOT_LSE 8f
+
+ LDOP s(0), s(0), [x1]
+ ret
+
+8: mov s(tmp0), s(0)
+0: LDXR s(0), [x1]
+ OP s(tmp1), s(0), s(tmp0)
+ STXR w(tmp2), s(tmp1), [x1]
+ cbnz w(tmp2), 0b
+ ret
+
+ENDFN NAME(LDNM)
+#endif
diff --git a/libgcc/config/aarch64/sfp-exceptions.c b/libgcc/config/aarch64/sfp-exceptions.c
index ee4e9b877dc..8db7ef05086 100644
--- a/libgcc/config/aarch64/sfp-exceptions.c
+++ b/libgcc/config/aarch64/sfp-exceptions.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/aarch64/sfp-machine.h b/libgcc/config/aarch64/sfp-machine.h
index 863c149a83b..4c99eb4d33e 100644
--- a/libgcc/config/aarch64/sfp-machine.h
+++ b/libgcc/config/aarch64/sfp-machine.h
@@ -1,5 +1,5 @@
/* Machine description for AArch64 architecture.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GCC.
diff --git a/libgcc/config/aarch64/sync-cache.c b/libgcc/config/aarch64/sync-cache.c
index 8f30509df8e..ea3da4be02b 100644
--- a/libgcc/config/aarch64/sync-cache.c
+++ b/libgcc/config/aarch64/sync-cache.c
@@ -1,5 +1,5 @@
/* Machine description for AArch64 architecture.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GCC.
@@ -23,6 +23,9 @@ 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/>. */
+#define CTR_IDC_SHIFT 28
+#define CTR_DIC_SHIFT 29
+
void __aarch64_sync_cache_range (const void *, const void *);
void
@@ -41,32 +44,44 @@ __aarch64_sync_cache_range (const void *base, const void *end)
icache_lsize = 4 << (cache_info & 0xF);
dcache_lsize = 4 << ((cache_info >> 16) & 0xF);
- /* Loop over the address range, clearing one cache line at once.
- Data cache must be flushed to unification first to make sure the
- instruction cache fetches the updated data. 'end' is exclusive,
- as per the GNU definition of __clear_cache. */
+ /* If CTR_EL0.IDC is enabled, Data cache clean to the Point of Unification is
+ not required for instruction to data coherence. */
+
+ if (((cache_info >> CTR_IDC_SHIFT) & 0x1) == 0x0) {
+ /* Loop over the address range, clearing one cache line at once.
+ Data cache must be flushed to unification first to make sure the
+ instruction cache fetches the updated data. 'end' is exclusive,
+ as per the GNU definition of __clear_cache. */
- /* Make the start address of the loop cache aligned. */
- address = (const char*) ((__UINTPTR_TYPE__) base
- & ~ (__UINTPTR_TYPE__) (dcache_lsize - 1));
+ /* Make the start address of the loop cache aligned. */
+ address = (const char*) ((__UINTPTR_TYPE__) base
+ & ~ (__UINTPTR_TYPE__) (dcache_lsize - 1));
- for (; address < (const char *) end; address += dcache_lsize)
- asm volatile ("dc\tcvau, %0"
- :
- : "r" (address)
- : "memory");
+ for (; address < (const char *) end; address += dcache_lsize)
+ asm volatile ("dc\tcvau, %0"
+ :
+ : "r" (address)
+ : "memory");
+ }
asm volatile ("dsb\tish" : : : "memory");
- /* Make the start address of the loop cache aligned. */
- address = (const char*) ((__UINTPTR_TYPE__) base
- & ~ (__UINTPTR_TYPE__) (icache_lsize - 1));
+ /* If CTR_EL0.DIC is enabled, Instruction cache cleaning to the Point of
+ Unification is not required for instruction to data coherence. */
+
+ if (((cache_info >> CTR_DIC_SHIFT) & 0x1) == 0x0) {
+ /* Make the start address of the loop cache aligned. */
+ address = (const char*) ((__UINTPTR_TYPE__) base
+ & ~ (__UINTPTR_TYPE__) (icache_lsize - 1));
+
+ for (; address < (const char *) end; address += icache_lsize)
+ asm volatile ("ic\tivau, %0"
+ :
+ : "r" (address)
+ : "memory");
- for (; address < (const char *) end; address += icache_lsize)
- asm volatile ("ic\tivau, %0"
- :
- : "r" (address)
- : "memory");
+ asm volatile ("dsb\tish" : : : "memory");
+ }
- asm volatile ("dsb\tish; isb" : : : "memory");
+ asm volatile("isb" : : : "memory");
}
diff --git a/libgcc/config/aarch64/t-aarch64 b/libgcc/config/aarch64/t-aarch64
index 188daf46961..8c50d5dc1eb 100644
--- a/libgcc/config/aarch64/t-aarch64
+++ b/libgcc/config/aarch64/t-aarch64
@@ -1,5 +1,5 @@
# Machine description for AArch64 architecture.
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 Free Software Foundation, Inc.
# Contributed by ARM Ltd.
#
# This file is part of GCC.
diff --git a/libgcc/config/aarch64/t-lse b/libgcc/config/aarch64/t-lse
new file mode 100644
index 00000000000..fe3868dacbf
--- /dev/null
+++ b/libgcc/config/aarch64/t-lse
@@ -0,0 +1,44 @@
+# Out-of-line LSE atomics for AArch64 architecture.
+# Copyright (C) 2019 Free Software Foundation, Inc.
+# Contributed by Linaro Ltd.
+#
+# 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/>.
+
+# Compare-and-swap has 5 sizes and 4 memory models.
+S0 := $(foreach s, 1 2 4 8 16, $(addsuffix _$(s), cas))
+O0 := $(foreach m, 1 2 3 4, $(addsuffix _$(m)$(objext), $(S0)))
+
+# Swap, Load-and-operate have 4 sizes and 4 memory models
+S1 := $(foreach s, 1 2 4 8, $(addsuffix _$(s), swp ldadd ldclr ldeor ldset))
+O1 := $(foreach m, 1 2 3 4, $(addsuffix _$(m)$(objext), $(S1)))
+
+LSE_OBJS := $(O0) $(O1)
+
+libgcc-objects += $(LSE_OBJS) lse-init$(objext)
+
+empty =
+space = $(empty) $(empty)
+PAT_SPLIT = $(subst _,$(space),$(*F))
+PAT_BASE = $(word 1,$(PAT_SPLIT))
+PAT_N = $(word 2,$(PAT_SPLIT))
+PAT_M = $(word 3,$(PAT_SPLIT))
+
+lse-init$(objext): $(srcdir)/config/aarch64/lse-init.c
+ $(gcc_compile) -c $<
+
+$(LSE_OBJS): $(srcdir)/config/aarch64/lse.S
+ $(gcc_compile) -DL_$(PAT_BASE) -DSIZE=$(PAT_N) -DMODEL=$(PAT_M) -c $<
diff --git a/libgcc/config/aarch64/value-unwind.h b/libgcc/config/aarch64/value-unwind.h
index e15396250b0..8e99d8e12ae 100644
--- a/libgcc/config/aarch64/value-unwind.h
+++ b/libgcc/config/aarch64/value-unwind.h
@@ -1,5 +1,5 @@
/* Store register values as _Unwind_Word type in DWARF2 EH unwind context.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/alpha/crtfastmath.c b/libgcc/config/alpha/crtfastmath.c
index 4963c3ea421..377da964861 100644
--- a/libgcc/config/alpha/crtfastmath.c
+++ b/libgcc/config/alpha/crtfastmath.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 Free Software Foundation, Inc.
* Contributed by Richard Henderson (rth@redhat.com)
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/alpha/libgcc-alpha-ldbl.ver b/libgcc/config/alpha/libgcc-alpha-ldbl.ver
index 3d8be56d12a..6666bc63952 100644
--- a/libgcc/config/alpha/libgcc-alpha-ldbl.ver
+++ b/libgcc/config/alpha/libgcc-alpha-ldbl.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
+# Copyright (C) 2006-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/alpha/linux-unwind.h b/libgcc/config/alpha/linux-unwind.h
index 5519859a326..482564910f8 100644
--- a/libgcc/config/alpha/linux-unwind.h
+++ b/libgcc/config/alpha/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for Alpha Linux.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -53,7 +53,10 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
siginfo_t info;
ucontext_t uc;
} *rt_ = context->cfa;
- sc = &rt_->uc.uc_mcontext;
+ /* 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;
}
else
return _URC_END_OF_STACK;
diff --git a/libgcc/config/alpha/qrnnd.S b/libgcc/config/alpha/qrnnd.S
index 41b165c8747..25bfc6ed7f7 100644
--- a/libgcc/config/alpha/qrnnd.S
+++ b/libgcc/config/alpha/qrnnd.S
@@ -1,5 +1,5 @@
# Alpha 21064 __udiv_qrnnd
- # Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1992-2019 Free Software Foundation, Inc.
# This file is part of GCC.
diff --git a/libgcc/config/alpha/t-linux b/libgcc/config/alpha/t-linux
index fabf38f9cce..ea8c505718d 100644
--- a/libgcc/config/alpha/t-linux
+++ b/libgcc/config/alpha/t-linux
@@ -1 +1,4 @@
SHLIB_MAPFILES += $(srcdir)/config/alpha/libgcc-alpha-ldbl.ver
+
+# Use dynamic rounding mode.
+HOST_LIBGCC2_CFLAGS += -mfp-rounding-mode=d
diff --git a/libgcc/config/alpha/vms-dwarf2.S b/libgcc/config/alpha/vms-dwarf2.S
index 4d8be91e5f7..761058ab677 100644
--- a/libgcc/config/alpha/vms-dwarf2.S
+++ b/libgcc/config/alpha/vms-dwarf2.S
@@ -1,5 +1,5 @@
/* VMS dwarf2 section sequentializer.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GCC.
diff --git a/libgcc/config/alpha/vms-dwarf2eh.S b/libgcc/config/alpha/vms-dwarf2eh.S
index 5380641a4b4..abd70b363e7 100644
--- a/libgcc/config/alpha/vms-dwarf2eh.S
+++ b/libgcc/config/alpha/vms-dwarf2eh.S
@@ -1,5 +1,5 @@
/* VMS dwarf2 exception handling section sequentializer.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GCC.
diff --git a/libgcc/config/alpha/vms-gcc_shell_handler.c b/libgcc/config/alpha/vms-gcc_shell_handler.c
index d566bd11903..cebf25ca31b 100644
--- a/libgcc/config/alpha/vms-gcc_shell_handler.c
+++ b/libgcc/config/alpha/vms-gcc_shell_handler.c
@@ -1,5 +1,5 @@
/* Static condition handler for Alpha/VMS.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/alpha/vms-unwind.h b/libgcc/config/alpha/vms-unwind.h
index 1fc8e4e978f..cfe68161da0 100644
--- a/libgcc/config/alpha/vms-unwind.h
+++ b/libgcc/config/alpha/vms-unwind.h
@@ -1,5 +1,5 @@
/* Fallback frame unwinding for Alpha/VMS.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/arc/asm.h b/libgcc/config/arc/asm.h
index 4f22786959e..1d50f538ffd 100644
--- a/libgcc/config/arc/asm.h
+++ b/libgcc/config/arc/asm.h
@@ -1,6 +1,6 @@
/* Assembler macros for the Synopsys DesignWare ARC CPU.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/crti.S b/libgcc/config/arc/crti.S
index 43166dcdbc8..07e3231dd33 100644
--- a/libgcc/config/arc/crti.S
+++ b/libgcc/config/arc/crti.S
@@ -1,6 +1,6 @@
/* .fini/.init stack frame setup for the Synopsys DesignWare ARC CPU.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/crtn.S b/libgcc/config/arc/crtn.S
index 932630fc710..24b12011a06 100644
--- a/libgcc/config/arc/crtn.S
+++ b/libgcc/config/arc/crtn.S
@@ -1,6 +1,6 @@
/* Ensure .fini/.init return for the Synopsys DesignWare ARC CPU.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/crttls.S b/libgcc/config/arc/crttls.S
index 928701810fe..59066292588 100644
--- a/libgcc/config/arc/crttls.S
+++ b/libgcc/config/arc/crttls.S
@@ -1,6 +1,6 @@
; newlib tls glue code for Synopsys DesignWare ARC cpu.
-/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/divtab-arc700.c b/libgcc/config/arc/divtab-arc700.c
index 2f8963915f5..afdc89b7ab9 100644
--- a/libgcc/config/arc/divtab-arc700.c
+++ b/libgcc/config/arc/divtab-arc700.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/dp-hack.h b/libgcc/config/arc/dp-hack.h
index d1a697574ce..dd657da3450 100644
--- a/libgcc/config/arc/dp-hack.h
+++ b/libgcc/config/arc/dp-hack.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/fp-hack.h b/libgcc/config/arc/fp-hack.h
index 8b3ee322aea..f326798ecc1 100644
--- a/libgcc/config/arc/fp-hack.h
+++ b/libgcc/config/arc/fp-hack.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/adddf3.S b/libgcc/config/arc/ieee-754/adddf3.S
index 54b99d4251a..be80f46ada1 100644
--- a/libgcc/config/arc/ieee-754/adddf3.S
+++ b/libgcc/config/arc/ieee-754/adddf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/addsf3.S b/libgcc/config/arc/ieee-754/addsf3.S
index b33a95f4b52..709ce867e67 100644
--- a/libgcc/config/arc/ieee-754/addsf3.S
+++ b/libgcc/config/arc/ieee-754/addsf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/arc-ieee-754.h b/libgcc/config/arc/ieee-754/arc-ieee-754.h
index d8df22cfd72..9652f08511b 100644
--- a/libgcc/config/arc/ieee-754/arc-ieee-754.h
+++ b/libgcc/config/arc/ieee-754/arc-ieee-754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S b/libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S
index 20b06715c4f..01cb8e469a2 100644
--- a/libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S
+++ b/libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S b/libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S
index 07ae4af9ec0..99ed31b4ed6 100644
--- a/libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S
+++ b/libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S b/libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S
index 22c01de61b4..a19510610f6 100644
--- a/libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S
+++ b/libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S b/libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S
index 7c2204f047f..08087829149 100644
--- a/libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S
+++ b/libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S b/libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S
index 67f0af98502..f10eaeab1e2 100644
--- a/libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S
+++ b/libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S b/libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S
index 73e3e9e027b..254ae06b7b3 100644
--- a/libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S
+++ b/libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S b/libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S
index f7eb664764e..114c6f0f546 100644
--- a/libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S
+++ b/libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S b/libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S
index a9a9fa70fea..4840468e5bc 100644
--- a/libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S
+++ b/libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/arc600/divsf3.S b/libgcc/config/arc/ieee-754/arc600/divsf3.S
index 8a868af883e..12a31452572 100644
--- a/libgcc/config/arc/ieee-754/arc600/divsf3.S
+++ b/libgcc/config/arc/ieee-754/arc600/divsf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/arc600/mulsf3.S b/libgcc/config/arc/ieee-754/arc600/mulsf3.S
index 344f489298d..eabba55905c 100644
--- a/libgcc/config/arc/ieee-754/arc600/mulsf3.S
+++ b/libgcc/config/arc/ieee-754/arc600/mulsf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/divdf3.S b/libgcc/config/arc/ieee-754/divdf3.S
index c2f2252d9f4..6184f7c5049 100644
--- a/libgcc/config/arc/ieee-754/divdf3.S
+++ b/libgcc/config/arc/ieee-754/divdf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/divsf3-stdmul.S b/libgcc/config/arc/ieee-754/divsf3-stdmul.S
index b6d0b4db10c..de0cb2f41b2 100644
--- a/libgcc/config/arc/ieee-754/divsf3-stdmul.S
+++ b/libgcc/config/arc/ieee-754/divsf3-stdmul.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/divsf3.S b/libgcc/config/arc/ieee-754/divsf3.S
index 76d002d3773..5a90fb939ee 100644
--- a/libgcc/config/arc/ieee-754/divsf3.S
+++ b/libgcc/config/arc/ieee-754/divsf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/divtab-arc-df.c b/libgcc/config/arc/ieee-754/divtab-arc-df.c
index c62deef4858..a7691ab337d 100644
--- a/libgcc/config/arc/ieee-754/divtab-arc-df.c
+++ b/libgcc/config/arc/ieee-754/divtab-arc-df.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/divtab-arc-sf.c b/libgcc/config/arc/ieee-754/divtab-arc-sf.c
index 5a347f59753..e031a1bb4be 100644
--- a/libgcc/config/arc/ieee-754/divtab-arc-sf.c
+++ b/libgcc/config/arc/ieee-754/divtab-arc-sf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/eqdf2.S b/libgcc/config/arc/ieee-754/eqdf2.S
index f8c752b17c1..93dd0ee6204 100644
--- a/libgcc/config/arc/ieee-754/eqdf2.S
+++ b/libgcc/config/arc/ieee-754/eqdf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/eqsf2.S b/libgcc/config/arc/ieee-754/eqsf2.S
index 345a584c713..f835ddffd2d 100644
--- a/libgcc/config/arc/ieee-754/eqsf2.S
+++ b/libgcc/config/arc/ieee-754/eqsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/extendsfdf2.S b/libgcc/config/arc/ieee-754/extendsfdf2.S
index 4cb072f814f..5dd08c462d9 100644
--- a/libgcc/config/arc/ieee-754/extendsfdf2.S
+++ b/libgcc/config/arc/ieee-754/extendsfdf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/fixdfsi.S b/libgcc/config/arc/ieee-754/fixdfsi.S
index 5f0e60cc951..bae02812090 100644
--- a/libgcc/config/arc/ieee-754/fixdfsi.S
+++ b/libgcc/config/arc/ieee-754/fixdfsi.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/fixsfsi.S b/libgcc/config/arc/ieee-754/fixsfsi.S
index d1862d8678a..e769daa5fff 100644
--- a/libgcc/config/arc/ieee-754/fixsfsi.S
+++ b/libgcc/config/arc/ieee-754/fixsfsi.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/fixunsdfsi.S b/libgcc/config/arc/ieee-754/fixunsdfsi.S
index 6340dc253ce..1978fa4e1eb 100644
--- a/libgcc/config/arc/ieee-754/fixunsdfsi.S
+++ b/libgcc/config/arc/ieee-754/fixunsdfsi.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/floatsidf.S b/libgcc/config/arc/ieee-754/floatsidf.S
index 41632996e32..c76fc1a6a8f 100644
--- a/libgcc/config/arc/ieee-754/floatsidf.S
+++ b/libgcc/config/arc/ieee-754/floatsidf.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/floatsisf.S b/libgcc/config/arc/ieee-754/floatsisf.S
index bbb667b9dbf..2606d7e74e6 100644
--- a/libgcc/config/arc/ieee-754/floatsisf.S
+++ b/libgcc/config/arc/ieee-754/floatsisf.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/floatunsidf.S b/libgcc/config/arc/ieee-754/floatunsidf.S
index c0313fc9f6c..1eb33dfa3b3 100644
--- a/libgcc/config/arc/ieee-754/floatunsidf.S
+++ b/libgcc/config/arc/ieee-754/floatunsidf.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/gedf2.S b/libgcc/config/arc/ieee-754/gedf2.S
index b8f3b37fbb5..17097144629 100644
--- a/libgcc/config/arc/ieee-754/gedf2.S
+++ b/libgcc/config/arc/ieee-754/gedf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/gesf2.S b/libgcc/config/arc/ieee-754/gesf2.S
index cc3d3a2a0d6..977d6cc6c62 100644
--- a/libgcc/config/arc/ieee-754/gesf2.S
+++ b/libgcc/config/arc/ieee-754/gesf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/gtdf2.S b/libgcc/config/arc/ieee-754/gtdf2.S
index 0d490b2e2c5..d45c0785de7 100644
--- a/libgcc/config/arc/ieee-754/gtdf2.S
+++ b/libgcc/config/arc/ieee-754/gtdf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/gtsf2.S b/libgcc/config/arc/ieee-754/gtsf2.S
index 7da8c02df44..d969e5c01c5 100644
--- a/libgcc/config/arc/ieee-754/gtsf2.S
+++ b/libgcc/config/arc/ieee-754/gtsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/muldf3.S b/libgcc/config/arc/ieee-754/muldf3.S
index 31c13af8ec2..38aa79c8f47 100644
--- a/libgcc/config/arc/ieee-754/muldf3.S
+++ b/libgcc/config/arc/ieee-754/muldf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/mulsf3.S b/libgcc/config/arc/ieee-754/mulsf3.S
index 23235ae9c4a..d8b87a22dd3 100644
--- a/libgcc/config/arc/ieee-754/mulsf3.S
+++ b/libgcc/config/arc/ieee-754/mulsf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/orddf2.S b/libgcc/config/arc/ieee-754/orddf2.S
index 98fe9d98783..c0663430419 100644
--- a/libgcc/config/arc/ieee-754/orddf2.S
+++ b/libgcc/config/arc/ieee-754/orddf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/ordsf2.S b/libgcc/config/arc/ieee-754/ordsf2.S
index e913230fcf4..28eae0c8f91 100644
--- a/libgcc/config/arc/ieee-754/ordsf2.S
+++ b/libgcc/config/arc/ieee-754/ordsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/truncdfsf2.S b/libgcc/config/arc/ieee-754/truncdfsf2.S
index d4acc3f1c40..360c1dbdf0a 100644
--- a/libgcc/config/arc/ieee-754/truncdfsf2.S
+++ b/libgcc/config/arc/ieee-754/truncdfsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/uneqdf2.S b/libgcc/config/arc/ieee-754/uneqdf2.S
index de6ba46ce16..f66195242e7 100644
--- a/libgcc/config/arc/ieee-754/uneqdf2.S
+++ b/libgcc/config/arc/ieee-754/uneqdf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/ieee-754/uneqsf2.S b/libgcc/config/arc/ieee-754/uneqsf2.S
index d528785d18f..8dbe8405027 100644
--- a/libgcc/config/arc/ieee-754/uneqsf2.S
+++ b/libgcc/config/arc/ieee-754/uneqsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/initfini.c b/libgcc/config/arc/initfini.c
index a785fa70443..11c0c12170c 100644
--- a/libgcc/config/arc/initfini.c
+++ b/libgcc/config/arc/initfini.c
@@ -1,7 +1,7 @@
/* .init/.fini section handling + C++ global constructor/destructor handling.
This file is based on crtstuff.c, sol2-crti.asm, sol2-crtn.asm.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/lib1funcs.S b/libgcc/config/arc/lib1funcs.S
index 9a626022612..a6b081c25c8 100644
--- a/libgcc/config/arc/lib1funcs.S
+++ b/libgcc/config/arc/lib1funcs.S
@@ -1,6 +1,6 @@
; libgcc1 routines for Synopsys DesignWare ARC cpu.
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
@@ -232,6 +232,60 @@ SYM(__umulsi3_highpart):
#endif
#endif /* L_umulsidi3 */
+#ifdef L_muldi3
+ .section .text
+ .align 4
+ .global SYM(__muldi3)
+SYM(__muldi3):
+#ifdef __LITTLE_ENDIAN__
+ push_s blink
+ mov_s r4,r3 ;4
+ mov_s r5,r2 ;4
+ mov_s r9,r0 ;4
+ mov_s r8,r1 ;4
+ bl.d @__umulsidi3
+ mov_s r1,r2 ;4
+ mov_s r6,r0 ;4
+ mov_s r7,r1 ;4
+ mov_s r0,r9 ;4
+ bl.d @__mulsi3
+ mov_s r1,r4 ;4
+ mov_s r4,r0 ;4
+ mov_s r1,r8 ;4
+ bl.d @__mulsi3
+ mov_s r0,r5 ;4
+ pop_s blink
+ add_s r0,r0,r4 ;2
+ add r1,r0,r7
+ j_s.d [blink]
+ mov_s r0,r6 ;4
+#else
+ push_s blink
+ mov_s r5,r3
+ mov_s r9,r2
+ mov_s r4,r1
+ mov_s r8,r0
+ mov_s r0,r1
+ bl.d @__umulsidi3
+ mov_s r1,r3
+ mov_s r7,r0
+ mov_s r6,r1
+ mov_s r0,r4
+ bl.d @__mulsi3
+ mov_s r1,r9
+ mov_s r4,r0
+ mov_s r1,r8
+ bl.d @__mulsi3
+ mov_s r0,r5
+ pop_s blink
+ add_s r0,r0,r4
+ add_s r0,r0,r7
+ j_s.d [blink]
+ mov_s r1,r6
+#endif /* __LITTLE_ENDIAN__ */
+ENDFUNC(__muldi3)
+#endif /* L_muldi3 */
+
#ifdef L_umulsi3_highpart
#include "ieee-754/arc-ieee-754.h"
/* For use without a barrel shifter, and for ARC700 / ARC_MUL64, the
diff --git a/libgcc/config/arc/libgcc-excl.ver b/libgcc/config/arc/libgcc-excl.ver
index 92d6c210924..d5ce3102341 100644
--- a/libgcc/config/arc/libgcc-excl.ver
+++ b/libgcc/config/arc/libgcc-excl.ver
@@ -1,6 +1,6 @@
# Exclude libgcc.so symbols for the Synopsys DesignWare ARC CPU.
-# Copyright (C) 2007-2018 Free Software Foundation, Inc.
+# Copyright (C) 2007-2019 Free Software Foundation, Inc.
# Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
# on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/linux-unwind-reg.def b/libgcc/config/arc/linux-unwind-reg.def
index b8108c8a15d..b453aca1d95 100644
--- a/libgcc/config/arc/linux-unwind-reg.def
+++ b/libgcc/config/arc/linux-unwind-reg.def
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/arc/linux-unwind.h b/libgcc/config/arc/linux-unwind.h
index 0daaa6de816..e9591fd466c 100644
--- a/libgcc/config/arc/linux-unwind.h
+++ b/libgcc/config/arc/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for ARC Linux.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/arc/t-arc b/libgcc/config/arc/t-arc
index ad30fdb1db7..9e1b1307a58 100644
--- a/libgcc/config/arc/t-arc
+++ b/libgcc/config/arc/t-arc
@@ -1,6 +1,6 @@
# GCC Makefile fragment for Synopsys DesignWare ARC
-# Copyright (C) 2007-2018 Free Software Foundation, Inc.
+# Copyright (C) 2007-2019 Free Software Foundation, Inc.
# Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
# on behalf of Synopsys Inc.
@@ -21,7 +21,7 @@
CROSS_LIBGCC1 = libgcc1-asm.a
LIB1ASMSRC = arc/lib1funcs.S
-LIB1ASMFUNCS = _mulsi3 _umulsidi3 _umulsi3_highpart \
+LIB1ASMFUNCS = _mulsi3 _umulsidi3 _umulsi3_highpart _muldi3 \
_udivsi3 _divsi3 _umodsi3 _modsi3 \
_divmod_tools _clzsi2 \
_millicodethunk_st _millicodethunk_ld _millicodethunk_ret \
@@ -46,7 +46,6 @@ LIB2ADD = fp-bit.c dp-bit.c
dp-bit.c: $(srcdir)/fp-bit.c
echo '#ifndef __big_endian__' > dp-bit.c
- echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c
echo '#endif' >> dp-bit.c
echo '#include "fp-bit.h"' >> dp-bit.c
echo '#include "config/arc/dp-hack.h"' >> dp-bit.c
@@ -55,7 +54,6 @@ dp-bit.c: $(srcdir)/fp-bit.c
fp-bit.c: $(srcdir)/fp-bit.c
echo '#define FLOAT' > fp-bit.c
echo '#ifndef __big_endian__' >> fp-bit.c
- echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
echo '#endif' >> fp-bit.c
echo '#include "config/arc/fp-hack.h"' >> fp-bit.c
cat $(srcdir)/fp-bit.c >> fp-bit.c
diff --git a/libgcc/config/arc/t-arc-uClibc b/libgcc/config/arc/t-arc-uClibc
index 2285cb704cd..3684767ba55 100644
--- a/libgcc/config/arc/t-arc-uClibc
+++ b/libgcc/config/arc/t-arc-uClibc
@@ -1,6 +1,6 @@
# GCC Makefile fragment for the Synopsys DesignWare ARC700 CPU with uClibc.
-# Copyright (C) 2007-2018 Free Software Foundation, Inc.
+# Copyright (C) 2007-2019 Free Software Foundation, Inc.
# Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
# on behalf of Synopsys Inc.
diff --git a/libgcc/config/arm/bpabi-lib.h b/libgcc/config/arm/bpabi-lib.h
index 70acfa7d14b..e81c703b7a8 100644
--- a/libgcc/config/arm/bpabi-lib.h
+++ b/libgcc/config/arm/bpabi-lib.h
@@ -1,5 +1,5 @@
/* Configuration file for ARM BPABI targets, library renames.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC
This file is part of GCC.
diff --git a/libgcc/config/arm/bpabi-v6m.S b/libgcc/config/arm/bpabi-v6m.S
index fb729d06bb6..a0954c21819 100644
--- a/libgcc/config/arm/bpabi-v6m.S
+++ b/libgcc/config/arm/bpabi-v6m.S
@@ -1,7 +1,7 @@
/* Miscellaneous BPABI functions. Thumb-1 implementation, suitable for ARMv4T,
ARMv6-M and ARMv8-M Baseline like ISA variants.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
Contributed by CodeSourcery.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/arm/bpabi.S b/libgcc/config/arm/bpabi.S
index 51de0c927bd..142cf7df226 100644
--- a/libgcc/config/arm/bpabi.S
+++ b/libgcc/config/arm/bpabi.S
@@ -1,6 +1,6 @@
/* Miscellaneous BPABI functions.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/arm/bpabi.c b/libgcc/config/arm/bpabi.c
index 6dd4b95cc74..4a2450891cd 100644
--- a/libgcc/config/arm/bpabi.c
+++ b/libgcc/config/arm/bpabi.c
@@ -1,6 +1,6 @@
/* Miscellaneous BPABI functions.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/arm/cmse.c b/libgcc/config/arm/cmse.c
index 2ad0af2ecd8..0c5a3eaefab 100644
--- a/libgcc/config/arm/cmse.c
+++ b/libgcc/config/arm/cmse.c
@@ -1,5 +1,5 @@
/* ARMv8-M Security Extensions routines.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
address range. See ACLE changes for ARMv8-M. */
void *
+__attribute__ ((warn_unused_result))
cmse_check_address_range (void *p, size_t size, int flags)
{
cmse_address_info_t permb, perme;
diff --git a/libgcc/config/arm/cmse_nonsecure_call.S b/libgcc/config/arm/cmse_nonsecure_call.S
index 9864a5827cc..0e57389b29e 100644
--- a/libgcc/config/arm/cmse_nonsecure_call.S
+++ b/libgcc/config/arm/cmse_nonsecure_call.S
@@ -1,7 +1,7 @@
/* CMSE wrapper function used to save, clear and restore callee saved registers
for cmse_nonsecure_call's.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/arm/crtfastmath.c b/libgcc/config/arm/crtfastmath.c
index 48780c29734..623967d6709 100644
--- a/libgcc/config/arm/crtfastmath.c
+++ b/libgcc/config/arm/crtfastmath.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2014-2019 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/arm/crti.S b/libgcc/config/arm/crti.S
index 2a6c4120625..0b8536991a0 100644
--- a/libgcc/config/arm/crti.S
+++ b/libgcc/config/arm/crti.S
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2019 Free Software Foundation, Inc.
# Written By Nick Clifton
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/arm/crtn.S b/libgcc/config/arm/crtn.S
index 2a9c8d92ceb..11961aa57f5 100644
--- a/libgcc/config/arm/crtn.S
+++ b/libgcc/config/arm/crtn.S
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2019 Free Software Foundation, Inc.
# Written By Nick Clifton
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/arm/fp16.c b/libgcc/config/arm/fp16.c
index 2803dbfd8c9..fed320314f8 100644
--- a/libgcc/config/arm/fp16.c
+++ b/libgcc/config/arm/fp16.c
@@ -1,6 +1,6 @@
/* Half-float conversion routines.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by CodeSourcery.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/arm/freebsd-atomic.c b/libgcc/config/arm/freebsd-atomic.c
index 77618da7cf6..e962a2e6843 100644
--- a/libgcc/config/arm/freebsd-atomic.c
+++ b/libgcc/config/arm/freebsd-atomic.c
@@ -1,5 +1,5 @@
/* FreeBSD specific atomic operations for ARM EABI.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/arm/ieee754-df.S b/libgcc/config/arm/ieee754-df.S
index 8741aa99245..233801794f6 100644
--- a/libgcc/config/arm/ieee754-df.S
+++ b/libgcc/config/arm/ieee754-df.S
@@ -1,7 +1,7 @@
/* ieee754-df.S double-precision floating point support for ARM
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
- Contributed by Nicolas Pitre (nico@cam.org)
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
+ Contributed by Nicolas Pitre (nico@fluxnic.net)
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -238,9 +238,10 @@ LSYM(Lad_a):
movs ip, ip, lsl #1
adcs xl, xl, xl
adc xh, xh, xh
- tst xh, #0x00100000
- sub r4, r4, #1
- bne LSYM(Lad_e)
+ subs r4, r4, #1
+ do_it hs
+ cmphs xh, #0x00100000
+ bhs LSYM(Lad_e)
@ No rounding necessary since ip will always be 0 at this point.
LSYM(Lad_l):
@@ -616,7 +617,18 @@ ARM_FUNC_ALIAS aeabi_l2d floatdidf
#endif /* L_addsubdf3 */
-#ifdef L_arm_muldivdf3
+#if defined(L_arm_muldf3) || defined(L_arm_muldivdf3)
+
+@ Define multiplication as weak in _arm_muldf3.o so that it can be overriden
+@ by the global definition in _arm_muldivdf3.o. This allows a program only
+@ using multiplication to take the weak definition which does not contain the
+@ division code. Programs using only division or both division and
+@ multiplication will pull _arm_muldivdf3.o from which both the multiplication
+@ and division are taken thanks to the override.
+#ifdef L_arm_muldf3
+WEAK muldf3
+WEAK aeabi_dmul
+#endif
ARM_FUNC_START muldf3
ARM_FUNC_ALIAS aeabi_dmul muldf3
@@ -657,7 +669,7 @@ ARM_FUNC_ALIAS aeabi_dmul muldf3
beq LSYM(Lml_1)
@ Here is the actual multiplication.
- @ This code works on architecture versions > 4
+ @ This code works on architecture versions >= 4
umull ip, lr, xl, yl
mov r5, #0
umlal lr, r5, xh, yl
@@ -869,6 +881,8 @@ LSYM(Lml_n):
FUNC_END aeabi_dmul
FUNC_END muldf3
+#ifdef L_arm_muldivdf3
+
ARM_FUNC_START divdf3
ARM_FUNC_ALIAS aeabi_ddiv divdf3
CFI_START_FUNCTION
@@ -1066,6 +1080,7 @@ LSYM(Ldv_s):
FUNC_END divdf3
#endif /* L_muldivdf3 */
+#endif /* L_arm_muldf3 || L_arm_muldivdf3 */
#ifdef L_arm_cmpdf2
diff --git a/libgcc/config/arm/ieee754-sf.S b/libgcc/config/arm/ieee754-sf.S
index d80d5e9080c..298c86c4a1d 100644
--- a/libgcc/config/arm/ieee754-sf.S
+++ b/libgcc/config/arm/ieee754-sf.S
@@ -1,7 +1,7 @@
/* ieee754-sf.S single-precision floating point support for ARM
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
- Contributed by Nicolas Pitre (nico@cam.org)
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
+ Contributed by Nicolas Pitre (nico@fluxnic.net)
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -168,10 +168,11 @@ LSYM(Lad_e):
LSYM(Lad_a):
movs r1, r1, lsl #1
adc r0, r0, r0
- tst r0, #0x00800000
- sub r2, r2, #1
- bne LSYM(Lad_e)
-
+ subs r2, r2, #1
+ do_it hs
+ cmphs r0, #0x00800000
+ bhs LSYM(Lad_e)
+
@ No rounding necessary since r1 will always be 0 at this point.
LSYM(Lad_l):
@@ -427,7 +428,18 @@ ARM_FUNC_ALIAS aeabi_l2f floatdisf
#endif /* L_addsubsf3 */
-#ifdef L_arm_muldivsf3
+#if defined(L_arm_mulsf3) || defined(L_arm_muldivsf3)
+
+@ Define multiplication as weak in _arm_mulsf3.o so that it can be overriden
+@ by the global definition in _arm_muldivsf3.o. This allows a program only
+@ using multiplication to take the weak definition which does not contain the
+@ division code. Programs using only division or both division and
+@ multiplication will pull _arm_muldivsf3.o from which both the multiplication
+@ and division are taken thanks to the override.
+#ifdef L_arm_mulsf3
+WEAK mulsf3
+WEAK aeabi_fmul
+#endif
ARM_FUNC_START mulsf3
ARM_FUNC_ALIAS aeabi_fmul mulsf3
@@ -461,7 +473,7 @@ LSYM(Lml_x):
orr r1, r3, r1, lsr #5
@ The actual multiplication.
- @ This code works on architecture versions > 4
+ @ This code works on architecture versions >= 4
umull r3, r1, r0, r1
@ Put final sign in r0.
@@ -612,6 +624,8 @@ LSYM(Lml_n):
FUNC_END aeabi_fmul
FUNC_END mulsf3
+#ifdef L_arm_muldivsf3
+
ARM_FUNC_START divsf3
ARM_FUNC_ALIAS aeabi_fdiv divsf3
CFI_START_FUNCTION
@@ -755,6 +769,7 @@ LSYM(Ldv_s):
FUNC_END divsf3
#endif /* L_muldivsf3 */
+#endif /* L_arm_mulsf3 || L_arm_muldivsf3 */
#ifdef L_arm_cmpsf2
diff --git a/libgcc/config/arm/lib1funcs.S b/libgcc/config/arm/lib1funcs.S
index b9919aa966d..80fc0773c67 100644
--- a/libgcc/config/arm/lib1funcs.S
+++ b/libgcc/config/arm/lib1funcs.S
@@ -1,7 +1,7 @@
@ libgcc routines for ARM cpu.
@ Division routines, written by Richard Earnshaw, (rearnsha@armltd.co.uk)
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -359,12 +359,8 @@ SYM (\name):
#define THUMB_SYNTAX
#endif
-.macro FUNC_START name sp_section=
- .ifc \sp_section, function_section
- .section .text.__\name,"ax",%progbits
- .else
+.macro FUNC_START name
.text
- .endif
.globl SYM (__\name)
TYPE (__\name)
.align 0
@@ -390,8 +386,8 @@ SYM (\name):
#if defined(__thumb2__)
/* For Thumb-2 we build everything in thumb mode. */
-.macro ARM_FUNC_START name sp_section=
- FUNC_START \name \sp_section
+.macro ARM_FUNC_START name
+ FUNC_START \name
.syntax unified
.endm
#define EQUIV .thumb_set
@@ -422,12 +418,8 @@ _L__\name:
#ifdef NOT_ISA_TARGET_32BIT
#define EQUIV .thumb_set
#else
-.macro ARM_FUNC_START name sp_section=
- .ifc \sp_section, function_section
- .section .text.__\name,"ax",%progbits
- .else
+.macro ARM_FUNC_START name
.text
- .endif
.globl SYM (__\name)
TYPE (__\name)
.align 0
@@ -1533,6 +1525,50 @@ LSYM(Lover12):
#error "This is only for ARM EABI GNU/Linux"
#endif
#endif /* L_clear_cache */
+
+#ifdef L_speculation_barrier
+ FUNC_START speculation_barrier
+#if __ARM_ARCH >= 7
+ isb
+ dsb sy
+#elif defined __ARM_EABI__ && defined __linux__
+ /* We don't have a speculation barrier directly for this
+ platform/architecture variant. But we can use a kernel
+ clear_cache service routine which will emit such instructions
+ if run on a later version of the architecture. We don't
+ really want to flush the cache, but we must give it a valid
+ address, so just clear pc..pc+1. */
+#if defined __thumb__ && !defined __thumb2__
+ push {r7}
+ mov r7, #0xf
+ lsl r7, #16
+ add r7, #2
+ adr r0, . + 4
+ add r1, r0, #1
+ mov r2, #0
+ svc 0
+ pop {r7}
+#else
+ do_push {r7}
+#ifdef __ARM_ARCH_6T2__
+ movw r7, #2
+ movt r7, #0xf
+#else
+ mov r7, #0xf0000
+ add r7, r7, #2
+#endif
+ add r0, pc, #0 /* ADR. */
+ add r1, r0, #1
+ mov r2, #0
+ svc 0
+ do_pop {r7}
+#endif /* Thumb1 only */
+#else
+#warning "No speculation barrier defined for this platform"
+#endif
+ RET
+ FUNC_END speculation_barrier
+#endif
/* ------------------------------------------------------------------------ */
/* Dword shift operations. */
/* All the following Dword shift variants rely on the fact that
@@ -2125,7 +2161,8 @@ LSYM(Lchange_\register):
.endm
#ifndef __symbian__
-/* The condition here must match the one in gcc/config/arm/elf.h. */
+/* The condition here must match the one in gcc/config/arm/elf.h and
+ libgcc/config/arm/t-elf. */
#ifndef NOT_ISA_TARGET_32BIT
#include "ieee754-df.S"
#include "ieee754-sf.S"
diff --git a/libgcc/config/arm/libgcc-bpabi.ver b/libgcc/config/arm/libgcc-bpabi.ver
index 0cce06d4ca9..8aa114275d1 100644
--- a/libgcc/config/arm/libgcc-bpabi.ver
+++ b/libgcc/config/arm/libgcc-bpabi.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/arm/libunwind.S b/libgcc/config/arm/libunwind.S
index 50c58dc9b21..2c0b7f91061 100644
--- a/libgcc/config/arm/libunwind.S
+++ b/libgcc/config/arm/libunwind.S
@@ -1,5 +1,5 @@
/* Support functions for the unwinder.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/arm/linux-atomic-64bit.c b/libgcc/config/arm/linux-atomic-64bit.c
index 147c56e2d9f..4d80899d51a 100644
--- a/libgcc/config/arm/linux-atomic-64bit.c
+++ b/libgcc/config/arm/linux-atomic-64bit.c
@@ -1,5 +1,5 @@
/* 64bit Linux-specific atomic operations for ARM EABI.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
Based on linux-atomic.c
64 bit additions david.gilbert@linaro.org
diff --git a/libgcc/config/arm/linux-atomic.c b/libgcc/config/arm/linux-atomic.c
index d334c5825eb..565f829c5c0 100644
--- a/libgcc/config/arm/linux-atomic.c
+++ b/libgcc/config/arm/linux-atomic.c
@@ -1,5 +1,5 @@
/* Linux-specific atomic operations for ARM EABI.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by CodeSourcery.
This file is part of GCC.
@@ -25,11 +25,62 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
/* Kernel helper for compare-and-exchange. */
typedef int (__kernel_cmpxchg_t) (int oldval, int newval, int *ptr);
-#define __kernel_cmpxchg (*(__kernel_cmpxchg_t *) 0xffff0fc0)
+
+#define STR(X) #X
+#define XSTR(X) STR(X)
+
+#define KERNEL_CMPXCHG 0xffff0fc0
+
+#if __FDPIC__
+/* Non-FDPIC ABIs call __kernel_cmpxchg directly by dereferencing its
+ address, but under FDPIC we would generate a broken call
+ sequence. That's why we have to implement __kernel_cmpxchg and
+ __kernel_dmb here: this way, the FDPIC call sequence works. */
+#define __kernel_cmpxchg __fdpic_cmpxchg
+#else
+#define __kernel_cmpxchg (*(__kernel_cmpxchg_t *) KERNEL_CMPXCHG)
+#endif
/* Kernel helper for memory barrier. */
typedef void (__kernel_dmb_t) (void);
-#define __kernel_dmb (*(__kernel_dmb_t *) 0xffff0fa0)
+
+#define KERNEL_DMB 0xffff0fa0
+
+#if __FDPIC__
+#define __kernel_dmb __fdpic_dmb
+#else
+#define __kernel_dmb (*(__kernel_dmb_t *) KERNEL_DMB)
+#endif
+
+#if __FDPIC__
+static int __fdpic_cmpxchg (int oldval, int newval, int *ptr)
+{
+ int result;
+
+ asm volatile (
+ "ldr ip, 1f\n\t"
+ "bx ip\n\t"
+ "1:\n\t"
+ ".word " XSTR(KERNEL_CMPXCHG) "\n\t"
+ : "=r" (result)
+ : "r" (oldval) , "r" (newval), "r" (ptr)
+ : "r3", "memory");
+ /* The result is actually returned by the kernel helper, we need
+ this to avoid a warning. */
+ return result;
+}
+
+static void __fdpic_dmb (void)
+{
+ asm volatile (
+ "ldr ip, 1f\n\t"
+ "bx ip\n\t"
+ "1:\n\t"
+ ".word " XSTR(KERNEL_DMB) "\n\t"
+ );
+}
+
+#endif
/* Note: we implement byte, short and int versions of atomic operations using
the above kernel helpers; see linux-atomic-64bit.c for "long long" (64-bit)
diff --git a/libgcc/config/arm/pr-support.c b/libgcc/config/arm/pr-support.c
index 4c8f71f68eb..bcf9b288fe9 100644
--- a/libgcc/config/arm/pr-support.c
+++ b/libgcc/config/arm/pr-support.c
@@ -1,5 +1,5 @@
/* ARM EABI compliant unwinding routines
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is free software; you can redistribute it and/or modify it
@@ -21,6 +21,7 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#pragma GCC target ("general-regs-only")
#include "unwind.h"
/* We add a prototype for abort here to avoid creating a dependency on
diff --git a/libgcc/config/arm/symbian-lib.h b/libgcc/config/arm/symbian-lib.h
index 5c0572be414..a9985dd24d7 100644
--- a/libgcc/config/arm/symbian-lib.h
+++ b/libgcc/config/arm/symbian-lib.h
@@ -1,5 +1,5 @@
/* Configuration file for Symbian OS on ARM processors, library renames.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/arm/t-arm b/libgcc/config/arm/t-arm
index 9e85ac06b14..274bf2a8ef3 100644
--- a/libgcc/config/arm/t-arm
+++ b/libgcc/config/arm/t-arm
@@ -1,6 +1,6 @@
LIB1ASMSRC = arm/lib1funcs.S
LIB1ASMFUNCS = _thumb1_case_sqi _thumb1_case_uqi _thumb1_case_shi \
- _thumb1_case_uhi _thumb1_case_si
+ _thumb1_case_uhi _thumb1_case_si _speculation_barrier
HAVE_CMSE:=$(findstring __ARM_FEATURE_CMSE,$(shell $(gcc_compile_bare) -dM -E - </dev/null))
ifneq ($(shell $(gcc_compile_bare) -E -mcmse - </dev/null 2>/dev/null),)
diff --git a/libgcc/config/arm/t-elf b/libgcc/config/arm/t-elf
index 9e7a3170f17..9da6cd37054 100644
--- a/libgcc/config/arm/t-elf
+++ b/libgcc/config/arm/t-elf
@@ -1,3 +1,19 @@
+ifeq (,$(findstring __symbian__,$(shell $(gcc_compile_bare) -dM -E - </dev/null)))
+
+ARM_ISA:=$(findstring __ARM_ARCH_ISA_ARM,$(shell $(gcc_compile_bare) -dM -E - </dev/null))
+THUMB1_ISA:=$(findstring __ARM_ARCH_ISA_THUMB 1,$(shell $(gcc_compile_bare) -dM -E - </dev/null))
+
+# The condition here must match the one in gcc/config/arm/elf.h and
+# libgcc/config/arm/lib1funcs.S. _arm_muldf3 and _arm_mulsf3 must be included
+# first so that the weak multiplication symbols in the corresponding files are
+# chosen over the global symbols that _arm_muldivdf3 and _arm_muldivsf3
+# inclusion create when only multiplication is used, thus avoiding pulling in
+# useless division code.
+ifneq (__ARM_ARCH_ISA_THUMB 1,$(ARM_ISA)$(THUMB1_ISA))
+LIB1ASMFUNCS += _arm_muldf3 _arm_mulsf3
+endif
+endif # !__symbian__
+
# For most CPUs we have an assembly soft-float implementations.
# However this is not true for ARMv6M. Here we want to use the soft-fp C
# implementation. The soft-fp code is only build for ARMv6M. This pulls
diff --git a/libgcc/config/arm/t-netbsd b/libgcc/config/arm/t-netbsd
index 95358f931ba..ea4d5de4e77 100644
--- a/libgcc/config/arm/t-netbsd
+++ b/libgcc/config/arm/t-netbsd
@@ -1,3 +1,11 @@
+# This list is from t-elf, but with some things removed.
+LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \
+ _call_via_rX _interwork_call_via_rX \
+ _arm_fixunsdfsi _arm_fixunssfsi \
+ _arm_floatdidf _arm_floatdisf _arm_floatundidf _arm_floatundisf \
+ _lshrdi3 _ashrdi3 _ashldi3 \
+ _clzsi2 _clzdi2 _ctzsi2
+
# Just for these, we omit the frame pointer since it makes such a big
# difference. It is then pointless adding debugging.
HOST_LIBGCC2_CFLAGS += -fomit-frame-pointer
diff --git a/libgcc/config/arm/t-netbsd-eabi b/libgcc/config/arm/t-netbsd-eabi
new file mode 100644
index 00000000000..ae08ea43ef7
--- /dev/null
+++ b/libgcc/config/arm/t-netbsd-eabi
@@ -0,0 +1,18 @@
+# This list is from t-elf, but with lots removed.
+LIB1ASMFUNCS += _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX \
+ _clzsi2 _clzdi2 _ctzsi2
+
+# Derived from t-bpabi
+# Add the BPABI C functions.
+LIB2ADD += $(srcdir)/config/arm/unaligned-funcs.c
+
+# Not using libgcc for EH.
+LIB2ADDEH =
+
+# Add the BPABI names.
+SHLIB_MAPFILES += $(srcdir)/config/arm/libgcc-bpabi.ver
+
+# On ARM, specifying -fnon-call-exceptions will needlessly pull in
+# the unwinder in simple programs which use 64-bit division. Omitting
+# the option is safe.
+LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions
diff --git a/libgcc/config/arm/unaligned-funcs.c b/libgcc/config/arm/unaligned-funcs.c
index a548bc88a39..5456a5ffc5a 100644
--- a/libgcc/config/arm/unaligned-funcs.c
+++ b/libgcc/config/arm/unaligned-funcs.c
@@ -1,6 +1,6 @@
/* EABI unaligned read/write functions.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/arm/unwind-arm-vxworks.c b/libgcc/config/arm/unwind-arm-vxworks.c
index 04596cce2f9..6fccf10b3c8 100644
--- a/libgcc/config/arm/unwind-arm-vxworks.c
+++ b/libgcc/config/arm/unwind-arm-vxworks.c
@@ -1,5 +1,5 @@
-/* Support for ARM EABI unwinding in VxWorks Downloadable Kernel Modules.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Support for ARM EABI unwinding on VxWorks Downloadable Kernel Modules.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -20,14 +20,59 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
-#if defined(__vxworks) && !defined (__RTP__)
-/* Vxworks for ARM uses __gnu_Unwind_Find_exidx to retrieve the exception
- table for downloadable kernel modules. As those modules are only partially
- linked, the linker won't generate __exidx_start|end, but the two symbols
- are still used in alternate paths from unwind-arm-common.inc.
+/* The common unwinding code refers to __gnu_Unwind_Find_exidx and
+ __cxa_type_match symbols, which are not in VxWorks kernels on ARM,
+ now llvm based.
+
+ While the common code works just fine for RTPs thanks to weak references
+ and proper positioning of __exidx_start/end from linker scripts, we need
+ symbol definitions for kernel modules. */
+
+#ifndef __RTP__
+
+#include <private/moduleLibP.h>
+
+/* __gnu_Unwind_Find_exidx. See if we can use _func_moduleExidxGet to
+ refine whatever we have in __exidx_start and __exidx_end. */
+
+typedef struct
+{
+ UINT32 fnoffset;
+ UINT32 content;
+} __EIT_entry;
+
+extern __EIT_entry __exidx_start;
+extern __EIT_entry __exidx_end;
+
+__EIT_entry *
+__gnu_Unwind_Find_exidx (void *pc, int *nrec)
+{
+ __EIT_entry *pstart = 0;
+ __EIT_entry *pend = 0;
+
+ if (_func_moduleExidxGet != NULL)
+ _func_moduleExidxGet (pc,
+ (void *) &__exidx_start, (void *) &__exidx_end,
+ (void **) &pstart, (void **) &pend);
+
+ if (!pstart)
+ {
+ pstart = &__exidx_start;
+ pend = &__exidx_end;
+ }
+
+ *nrec = pend - pstart;
+
+ return pstart;
+}
+
+/* __cxa_type_match. A dummy version to be overridden by the libstdc++ one
+ when we link with it. */
+
+void * __attribute__((weak))
+__cxa_type_match ()
+{
+ return (void *) 0;
+}
- As we don't rely on them, but still need the symbols, we define dummy
- values here. */
-void *__exidx_start __attribute__((__visibility__ ("hidden")));
-void *__exidx_end __attribute__((__visibility__ ("hidden")));
#endif
diff --git a/libgcc/config/arm/unwind-arm.c b/libgcc/config/arm/unwind-arm.c
index 564e4f13157..9ba73e72a2a 100644
--- a/libgcc/config/arm/unwind-arm.c
+++ b/libgcc/config/arm/unwind-arm.c
@@ -1,5 +1,5 @@
/* ARM EABI compliant unwinding routines.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is free software; you can redistribute it and/or modify it
@@ -21,6 +21,7 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#pragma GCC target ("general-regs-only")
#include "unwind.h"
/* Misc constants. */
diff --git a/libgcc/config/arm/unwind-arm.h b/libgcc/config/arm/unwind-arm.h
index 9f7d3f2ac2d..2bf320ab858 100644
--- a/libgcc/config/arm/unwind-arm.h
+++ b/libgcc/config/arm/unwind-arm.h
@@ -1,5 +1,5 @@
/* Header file for the ARM EABI unwinder
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is free software; you can redistribute it and/or modify it
@@ -33,9 +33,33 @@
/* Use IP as a scratch register within the personality routine. */
#define UNWIND_POINTER_REG 12
+#define FDPIC_REGNUM 9
+
+#define STR(x) #x
+#define XSTR(x) STR(x)
+
#ifdef __cplusplus
extern "C" {
#endif
+_Unwind_Ptr __attribute__((weak)) __gnu_Unwind_Find_got (_Unwind_Ptr);
+
+static inline _Unwind_Ptr gnu_Unwind_Find_got (_Unwind_Ptr ptr)
+{
+ _Unwind_Ptr res;
+
+ if (__gnu_Unwind_Find_got)
+ res = __gnu_Unwind_Find_got (ptr);
+ else
+ {
+ asm volatile ("mov %[result], r" XSTR(FDPIC_REGNUM)
+ : [result]"=r" (res)
+ :
+ :);
+ }
+
+ return res;
+}
+
/* Decode an R_ARM_TARGET2 relocation. */
static inline _Unwind_Word
_Unwind_decode_typeinfo_ptr (_Unwind_Word base __attribute__ ((unused)),
@@ -48,7 +72,12 @@ extern "C" {
if (!tmp)
return 0;
-#if (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__) \
+#if __FDPIC__
+ /* For FDPIC, we store the offset of the GOT entry. */
+ /* So, first get GOT from dynamic linker and then use indirect access. */
+ tmp += gnu_Unwind_Find_got (ptr);
+ tmp = *(_Unwind_Word *) tmp;
+#elif (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__) \
|| defined(__FreeBSD__) || defined(__fuchsia__)
/* Pc-relative indirect. */
#define _GLIBCXX_OVERRIDE_TTYPE_ENCODING (DW_EH_PE_pcrel | DW_EH_PE_indirect)
diff --git a/libgcc/config/avr/avr-lib.h b/libgcc/config/avr/avr-lib.h
index 245aae32137..7b5e17cf3ca 100644
--- a/libgcc/config/avr/avr-lib.h
+++ b/libgcc/config/avr/avr-lib.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/avr/lib1funcs-fixed.S b/libgcc/config/avr/lib1funcs-fixed.S
index ef2e72b0aad..32f827a8601 100644
--- a/libgcc/config/avr/lib1funcs-fixed.S
+++ b/libgcc/config/avr/lib1funcs-fixed.S
@@ -1,5 +1,5 @@
/* -*- Mode: Asm -*- */
-;; Copyright (C) 2012-2018 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2019 Free Software Foundation, Inc.
;; Contributed by Sean D'Epagnier (sean@depagnier.com)
;; Georg-Johann Lay (avr@gjlay.de)
diff --git a/libgcc/config/avr/lib1funcs.S b/libgcc/config/avr/lib1funcs.S
index 32c4aaf2611..11adf3f9604 100644
--- a/libgcc/config/avr/lib1funcs.S
+++ b/libgcc/config/avr/lib1funcs.S
@@ -1,5 +1,5 @@
/* -*- Mode: Asm -*- */
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
Contributed by Denis Chertykov <chertykov@gmail.com>
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/avr/lib2funcs.c b/libgcc/config/avr/lib2funcs.c
index 61246b6a5fa..436be64a064 100644
--- a/libgcc/config/avr/lib2funcs.c
+++ b/libgcc/config/avr/lib2funcs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/avr/t-avr b/libgcc/config/avr/t-avr
index c420c5d8fb9..e4f867be3d8 100644
--- a/libgcc/config/avr/t-avr
+++ b/libgcc/config/avr/t-avr
@@ -112,10 +112,14 @@ LIB2FUNCS_EXCLUDE = \
_clrsbdi2 \
-# We do not have the DF type.
+ifeq ($(long_double_type_size),32)
+# We do not have the DFtype.
+HOST_LIBGCC2_CFLAGS += -DDF=SF
+endif
+
# Most of the C functions in libgcc2 use almost all registers,
# so use -mcall-prologues for smaller code size.
-HOST_LIBGCC2_CFLAGS += -DDF=SF -Dinhibit_libc -mcall-prologues -Os
+HOST_LIBGCC2_CFLAGS += -Dinhibit_libc -mcall-prologues -Os
# Extra 16-bit integer functions.
intfuncs16 = _absvXX2 _addvXX3 _subvXX3 _mulvXX3 _negvXX2 _clrsbXX2
diff --git a/libgcc/config/avr/t-avrlibc b/libgcc/config/avr/t-avrlibc
index d2c8b870aab..2424d663565 100644
--- a/libgcc/config/avr/t-avrlibc
+++ b/libgcc/config/avr/t-avrlibc
@@ -64,3 +64,34 @@ LIB2FUNCS_EXCLUDE += \
_fixunssfsi _fixsfdi \
_fixunssfdi \
_floatdisf _floatundisf
+
+ifneq (,$(findstring avr,$(MULTISUBDIR)))
+
+# We are not in the avr2 (default) subdir, hence copying will work.
+# In default dir, copying won'twork because the default multilib is
+# built after all the others.
+
+ifneq (,$(findstring double64,$(MULTISUBDIR)))
+
+# We are in double64/libgcc or long-double64/libgcc:
+# Just copy from the [long ]double=float multilib; we would remove any DFmode
+# bits from this multilib variant, anyway, because the current assumption
+# is that avr-libc hosts *all* the IEEE-double stuff.
+
+LIB2FUNCS_EXCLUDE := %
+LIB1ASMFUNCS :=
+libgcc-objects :=
+libgcov-objects :=
+objects :=
+
+t-copy-libgcc.dep: $(srcdir)/config/avr/t-copy-libgcc
+ -rm -f libgcc.a
+ -rm -f libgcov.a
+ cp $< $@
+
+libgcc.a libgcov.a libgcc_tm.h: t-copy-libgcc.dep
+
+Makefile: t-copy-libgcc.dep
+
+endif
+endif
diff --git a/libgcc/config/avr/t-copy-libgcc b/libgcc/config/avr/t-copy-libgcc
new file mode 100644
index 00000000000..d34cbde731b
--- /dev/null
+++ b/libgcc/config/avr/t-copy-libgcc
@@ -0,0 +1,13 @@
+# Only used with --with-avrlibc & (-mlong-double=64 | -mdouble=64)
+#
+# Inserted at the end of Makefile by magic[tm].
+# We need this *after* Makefile's rules so we can override them.
+
+libgcc.a: ../../libgcc/libgcc.a
+ cp $< $@
+
+libgcov.a: ../../libgcc/libgcov.a
+ @:
+ifeq ($(enable_gcov),yes)
+ cp $< $@
+endif
diff --git a/libgcc/config/bfin/crti.S b/libgcc/config/bfin/crti.S
index 04c83d2162b..352b5d3bb2a 100644
--- a/libgcc/config/bfin/crti.S
+++ b/libgcc/config/bfin/crti.S
@@ -1,6 +1,6 @@
/* 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by Analog Devices.
This file is part of GCC.
diff --git a/libgcc/config/bfin/crtlibid.S b/libgcc/config/bfin/crtlibid.S
index 8b4d94759aa..64816e13500 100644
--- a/libgcc/config/bfin/crtlibid.S
+++ b/libgcc/config/bfin/crtlibid.S
@@ -1,6 +1,6 @@
/* Provide a weak definition of the library ID, for the benefit of certain
configure scripts.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/bfin/crtn.S b/libgcc/config/bfin/crtn.S
index 82be20805ca..15323f49e35 100644
--- a/libgcc/config/bfin/crtn.S
+++ b/libgcc/config/bfin/crtn.S
@@ -1,6 +1,6 @@
/* 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by Analog Devices.
This file is part of GCC.
diff --git a/libgcc/config/bfin/lib1funcs.S b/libgcc/config/bfin/lib1funcs.S
index 7d8d7172e51..e2716047d3a 100644
--- a/libgcc/config/bfin/lib1funcs.S
+++ b/libgcc/config/bfin/lib1funcs.S
@@ -1,5 +1,5 @@
/* libgcc functions for Blackfin.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by Analog Devices.
This file is part of GCC.
diff --git a/libgcc/config/bfin/libgcc-glibc.ver b/libgcc/config/bfin/libgcc-glibc.ver
index 5222aec0538..9b5966e6558 100644
--- a/libgcc/config/bfin/libgcc-glibc.ver
+++ b/libgcc/config/bfin/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/bfin/linux-unwind.h b/libgcc/config/bfin/linux-unwind.h
index 658d3ebe364..14f4c55c5f7 100644
--- a/libgcc/config/bfin/linux-unwind.h
+++ b/libgcc/config/bfin/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for Blackfin.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/bpf/crti.S b/libgcc/config/bpf/crti.S
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/libgcc/config/bpf/crti.S
diff --git a/libgcc/config/bpf/crtn.S b/libgcc/config/bpf/crtn.S
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/libgcc/config/bpf/crtn.S
diff --git a/libgcc/config/bpf/t-bpf b/libgcc/config/bpf/t-bpf
new file mode 100644
index 00000000000..88129a78f61
--- /dev/null
+++ b/libgcc/config/bpf/t-bpf
@@ -0,0 +1,23 @@
+LIB2ADDEH =
+
+crti.o: $(srcdir)/config/bpf/crti.S
+ $(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $<
+
+crtn.o: $(srcdir)/config/bpf/crtn.S
+ $(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $<
+
+# Some of the functions defined in libgcc2 exceed the eBPF stack
+# limit, or other restrictions imposed by this peculiar target.
+# Therefore we have to exclude them here.
+#
+# Patterns in bpf.md must guarantee that no calls to the excluded
+# functions are ever generated, and compiler tests should make sure
+# this holds.
+#
+# Note that the modes in the function names below are misleading: di
+# means TImode.
+LIB2FUNCS_EXCLUDE = _mulvdi3 _divdi3 _moddi3 _divmoddi4 _udivdi3 _umoddi3 \
+ _udivmoddi4
+
+# Prevent building "advanced" stuff (for example, gcov support).
+INHIBIT_LIBC_CFLAGS = -Dinhibit_libc
diff --git a/libgcc/config/c6x/c6x-abi.h b/libgcc/config/c6x/c6x-abi.h
index 6016daa6756..b5752cd51a2 100644
--- a/libgcc/config/c6x/c6x-abi.h
+++ b/libgcc/config/c6x/c6x-abi.h
@@ -1,5 +1,5 @@
/* Header file for C6X ABI versions of libgcc functions.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Bernd Schmidt <bernds@codesourcery.com>
This file is part of GCC.
diff --git a/libgcc/config/c6x/crti.S b/libgcc/config/c6x/crti.S
index 1d4e7d71227..37e90a5d13c 100644
--- a/libgcc/config/c6x/crti.S
+++ b/libgcc/config/c6x/crti.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Bernd Schmidt <bernds@codesourcery.com>.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/c6x/crtn.S b/libgcc/config/c6x/crtn.S
index 03b1a5147dc..ac72567b2fd 100644
--- a/libgcc/config/c6x/crtn.S
+++ b/libgcc/config/c6x/crtn.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Bernd Schmidt <bernds@codesourcery.com>.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/c6x/eqd.c b/libgcc/config/c6x/eqd.c
index 6ea2793d788..dca73701bff 100644
--- a/libgcc/config/c6x/eqd.c
+++ b/libgcc/config/c6x/eqd.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a == b, 0 otherwise.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/c6x/eqf.c b/libgcc/config/c6x/eqf.c
index 45f2e09f941..c361027d4a0 100644
--- a/libgcc/config/c6x/eqf.c
+++ b/libgcc/config/c6x/eqf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a == b, 0 otherwise.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/c6x/ged.c b/libgcc/config/c6x/ged.c
index 045232506cb..0fdbe384e11 100644
--- a/libgcc/config/c6x/ged.c
+++ b/libgcc/config/c6x/ged.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a >= b, 0 otherwise.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/c6x/gef.c b/libgcc/config/c6x/gef.c
index 534b5ad1b9c..445bad3cbef 100644
--- a/libgcc/config/c6x/gef.c
+++ b/libgcc/config/c6x/gef.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a >= b, 0 otherwise.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/c6x/gtd.c b/libgcc/config/c6x/gtd.c
index 6db81566614..eee233185cb 100644
--- a/libgcc/config/c6x/gtd.c
+++ b/libgcc/config/c6x/gtd.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a > b, 0 otherwise.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/c6x/gtf.c b/libgcc/config/c6x/gtf.c
index 657e3ce1c86..5526b80c83c 100644
--- a/libgcc/config/c6x/gtf.c
+++ b/libgcc/config/c6x/gtf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a > b, 0 otherwise.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/c6x/led.c b/libgcc/config/c6x/led.c
index b7efbae82b1..ae5fafea529 100644
--- a/libgcc/config/c6x/led.c
+++ b/libgcc/config/c6x/led.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a <= b, 0 otherwise.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/c6x/lef.c b/libgcc/config/c6x/lef.c
index 0124af7befd..1fff6ff3453 100644
--- a/libgcc/config/c6x/lef.c
+++ b/libgcc/config/c6x/lef.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a <= b, 0 otherwise.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/c6x/lib1funcs.S b/libgcc/config/c6x/lib1funcs.S
index bf31a7001d9..8d05ab35a87 100644
--- a/libgcc/config/c6x/lib1funcs.S
+++ b/libgcc/config/c6x/lib1funcs.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Bernd Schmidt <bernds@codesourcery.com>.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/c6x/libgcc-eabi.ver b/libgcc/config/c6x/libgcc-eabi.ver
index c3326915e9e..7d95630a54c 100644
--- a/libgcc/config/c6x/libgcc-eabi.ver
+++ b/libgcc/config/c6x/libgcc-eabi.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/c6x/libunwind.S b/libgcc/config/c6x/libunwind.S
index 7e649837806..d56618bdfb4 100644
--- a/libgcc/config/c6x/libunwind.S
+++ b/libgcc/config/c6x/libunwind.S
@@ -53,7 +53,7 @@ restore_core_regs:
;; scratch registers and stack pointer before the base registers
;; disappear. We also need to make sure no interrupts occur,
;; so put the whole thing in the delay slots of a dummy branch
- ;; We can not move the ret earlier as that would cause it to occur
+ ;; We cannot move the ret earlier as that would cause it to occur
;; before the last load completes
b .s1 (1f)
ldw .d1t1 *+A4[4], A4
diff --git a/libgcc/config/c6x/ltd.c b/libgcc/config/c6x/ltd.c
index 23c359dcfd6..8267bdb9d83 100644
--- a/libgcc/config/c6x/ltd.c
+++ b/libgcc/config/c6x/ltd.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a < b, 0 otherwise.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/c6x/ltf.c b/libgcc/config/c6x/ltf.c
index d877c183782..6548bf24919 100644
--- a/libgcc/config/c6x/ltf.c
+++ b/libgcc/config/c6x/ltf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a < b, 0 otherwise.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/c6x/pr-support.c b/libgcc/config/c6x/pr-support.c
index e4deac8c5ca..dd2c96b1f26 100644
--- a/libgcc/config/c6x/pr-support.c
+++ b/libgcc/config/c6x/pr-support.c
@@ -1,5 +1,5 @@
/* C6X ABI compliant unwinding routines
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/c6x/sfp-machine.h b/libgcc/config/c6x/sfp-machine.h
index 78129303f7f..564650bfd75 100644
--- a/libgcc/config/c6x/sfp-machine.h
+++ b/libgcc/config/c6x/sfp-machine.h
@@ -1,5 +1,5 @@
/* Soft-FP definitions for TI C6X.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This files is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/libgcc/config/c6x/unwind-c6x.c b/libgcc/config/c6x/unwind-c6x.c
index c91135d914d..417fb2c1109 100644
--- a/libgcc/config/c6x/unwind-c6x.c
+++ b/libgcc/config/c6x/unwind-c6x.c
@@ -1,5 +1,5 @@
/* C6X EABI compliant unwinding routines.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/c6x/unwind-c6x.h b/libgcc/config/c6x/unwind-c6x.h
index 666165eb7ca..c1962df4dfb 100644
--- a/libgcc/config/c6x/unwind-c6x.h
+++ b/libgcc/config/c6x/unwind-c6x.h
@@ -1,5 +1,5 @@
/* Header file for the C6X EABI unwinder
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/cr16/crti.S b/libgcc/config/cr16/crti.S
index cc5b6e4e3b7..855323e303e 100644
--- a/libgcc/config/cr16/crti.S
+++ b/libgcc/config/cr16/crti.S
@@ -1,6 +1,6 @@
# Specialized code needed to support construction and destruction of
# file-scope objects in C++ and Java code, and to support exception handling.
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 Free Software Foundation, Inc.
# Contributed by KPIT Cummins Infosystems Limited.
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/cr16/crtlibid.S b/libgcc/config/cr16/crtlibid.S
index edcdd267611..19726c8774f 100644
--- a/libgcc/config/cr16/crtlibid.S
+++ b/libgcc/config/cr16/crtlibid.S
@@ -1,6 +1,6 @@
# Provide a weak definition of the library ID, for the benefit of certain
# configure scripts.
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 Free Software Foundation, Inc.
# Contributed by KPIT Cummins Infosystems Limited.
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/cr16/crtn.S b/libgcc/config/cr16/crtn.S
index 2ba48172990..d87313054e9 100644
--- a/libgcc/config/cr16/crtn.S
+++ b/libgcc/config/cr16/crtn.S
@@ -1,6 +1,6 @@
# Specialized code needed to support construction and destruction of
# file-scope objects in C++ and Java code, and to support exception handling.
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 Free Software Foundation, Inc.
# Contributed by KPIT Cummins Infosystems Limited.
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/cr16/divmodhi3.c b/libgcc/config/cr16/divmodhi3.c
index 408275fe4c6..9c680ef6a69 100644
--- a/libgcc/config/cr16/divmodhi3.c
+++ b/libgcc/config/cr16/divmodhi3.c
@@ -1,5 +1,5 @@
/* Libgcc Target specific implementation - Emulating div and mod.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by KPIT Cummins Infosystems Limited.
This file is part of GCC.
diff --git a/libgcc/config/cr16/lib1funcs.S b/libgcc/config/cr16/lib1funcs.S
index 73da631b5a3..2b6d4dca8b6 100644
--- a/libgcc/config/cr16/lib1funcs.S
+++ b/libgcc/config/cr16/lib1funcs.S
@@ -1,5 +1,5 @@
/* Libgcc Target specific implementation.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by KPIT Cummins Infosystems Limited.
This file is part of GCC.
diff --git a/libgcc/config/cr16/t-cr16 b/libgcc/config/cr16/t-cr16
index 4618a3faf97..96f2d1df8bd 100644
--- a/libgcc/config/cr16/t-cr16
+++ b/libgcc/config/cr16/t-cr16
@@ -1,5 +1,5 @@
# Makefile fragment for building LIBGCC for the Renesas CR16 target.
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/cr16/t-crtlibid b/libgcc/config/cr16/t-crtlibid
index 4aa47570915..0bab2751890 100644
--- a/libgcc/config/cr16/t-crtlibid
+++ b/libgcc/config/cr16/t-crtlibid
@@ -1,5 +1,5 @@
# Makefile fragment for building LIBGCC for the Renesas CR16 target.
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/cr16/unwind-cr16.c b/libgcc/config/cr16/unwind-cr16.c
index 3884dad4194..2d6801d9dcc 100644
--- a/libgcc/config/cr16/unwind-cr16.c
+++ b/libgcc/config/cr16/unwind-cr16.c
@@ -1,5 +1,5 @@
/* DWARF2 exception handling and frame unwind runtime interface routines.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/cr16/unwind-dw2.h b/libgcc/config/cr16/unwind-dw2.h
index 56b300cd774..8ceb50322b3 100644
--- a/libgcc/config/cr16/unwind-dw2.h
+++ b/libgcc/config/cr16/unwind-dw2.h
@@ -1,5 +1,5 @@
/* DWARF2 frame unwind data structure.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/cris/arit.c b/libgcc/config/cris/arit.c
index 4ff2f036eb0..fd3cde54c26 100644
--- a/libgcc/config/cris/arit.c
+++ b/libgcc/config/cris/arit.c
@@ -2,7 +2,7 @@
Contributed by Axis Communications.
Written by Hans-Peter Nilsson <hp@axis.se>, c:a 1992.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/cris/mulsi3.S b/libgcc/config/cris/mulsi3.S
index e4204341a85..9b8e209a9be 100644
--- a/libgcc/config/cris/mulsi3.S
+++ b/libgcc/config/cris/mulsi3.S
@@ -1,4 +1,4 @@
-;; Copyright (C) 2001-2018 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2019 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/libgcc/config/cris/sfp-machine.h b/libgcc/config/cris/sfp-machine.h
index 7c1da02da96..35456cec0c3 100644
--- a/libgcc/config/cris/sfp-machine.h
+++ b/libgcc/config/cris/sfp-machine.h
@@ -1,5 +1,5 @@
/* Soft-FP definitions for CRIS.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/cris/umulsidi3.S b/libgcc/config/cris/umulsidi3.S
index 1b37176afba..0976b974ad5 100644
--- a/libgcc/config/cris/umulsidi3.S
+++ b/libgcc/config/cris/umulsidi3.S
@@ -1,4 +1,4 @@
-;; Copyright (C) 2001-2018 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2019 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/libgcc/config/csky/crti.S b/libgcc/config/csky/crti.S
new file mode 100644
index 00000000000..bf381dd0e81
--- /dev/null
+++ b/libgcc/config/csky/crti.S
@@ -0,0 +1,140 @@
+# Define _init and _fini entry points for C-SKY.
+# Copyright (C) 2018-2019 Free Software Foundation, Inc.
+# Contributed by C-SKY Microsystems and Mentor Graphics.
+#
+# This file 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.
+#
+# This file 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 makes a stack frame for the contents of the .fini and
+# .init sections. Users may put any desired instructions in those
+# sections.
+
+ .file "crti.S"
+
+/* We use more complicated versions of this code with GLIBC. */
+#if defined(__gnu_linux__)
+
+#ifndef PREINIT_FUNCTION
+# define PREINIT_FUNCTION __gmon_start__
+#endif
+
+#ifndef PREINIT_FUNCTION_WEAK
+# define PREINIT_FUNCTION_WEAK 1
+#endif
+
+#if PREINIT_FUNCTION_WEAK
+ .global PREINIT_FUNCTION
+ .weak PREINIT_FUNCTION
+ .align 4
+ .type call_weak_fn, %function
+call_weak_fn:
+ // push lr
+ subi sp, 4
+ stw lr, (sp)
+#ifdef __PIC__
+ lrw a2, PREINIT_FUNCTION@GOT
+ addu a2, gb
+ ldw a2, (a2)
+#else
+ lrw a2, PREINIT_FUNCTION
+#endif
+ cmpnei a2, 0
+ bf 1f
+ jsr a2
+1:
+ // pop lr
+ ldw lr, (sp)
+ addi sp, 4
+ rts
+
+ .align 4
+#else
+ .hidden PREINIT_FUNCTION
+#endif /* PREINIT_FUNCTION_WEAK */
+
+ .section .init,"ax",@progbits
+ .align 4
+ .globl _init
+ .type _init, @function
+_init:
+ subi sp, 8
+ stw lr, (sp, 0)
+#ifdef __PIC__
+ // stw gb, (sp, 4)
+ bsr .Lgetpc
+.Lgetpc:
+ lrw gb, .Lgetpc@GOTPC
+ add gb, lr
+#endif
+#if PREINIT_FUNCTION_WEAK
+#ifdef __PIC__
+ lrw a2, call_weak_fn@GOTOFF
+ add a2, gb
+ jsr a2
+#else
+ jsri call_weak_fn
+#endif
+#else /* !PREINIT_FUNCTION_WEAK */
+#ifdef __PIC__
+ lrw a2, PREINIT_FUNCTION@PLT
+ addu a2, gb
+ ldw a2, (a2)
+ jsr a2
+#else
+ jsri PREINIT_FUNCTION
+#endif
+#endif /* PREINIT_FUNCTION_WEAK */
+
+ br 2f
+ .literals
+ .align 4
+2:
+ .section .fini,"ax",@progbits
+ .align 4
+ .globl _fini
+ .type _fini, @function
+_fini:
+ subi sp,8
+ stw lr, (sp, 0)
+ br 2f
+ .literals
+ .align 4
+2:
+
+/* These are the non-GLIBC versions. */
+#else /* !defined(__gnu_linux__) */
+ .section ".init"
+ .global _init
+ .type _init,@function
+ .align 2
+_init:
+ subi sp, 16
+ st.w lr, (sp, 12)
+ mov r0, r0
+
+ .section ".fini"
+ .global _fini
+ .type _fini,@function
+ .align 2
+_fini:
+ subi sp, 16
+ st.w lr, (sp, 12)
+ mov r0, r0
+#endif /* defined(__gnu_linux__) */
diff --git a/libgcc/config/csky/crtn.S b/libgcc/config/csky/crtn.S
new file mode 100644
index 00000000000..49acb6ed96f
--- /dev/null
+++ b/libgcc/config/csky/crtn.S
@@ -0,0 +1,55 @@
+# Terminate C-SKY .init and .fini sections.
+# Copyright (C) 2018-2019 Free Software Foundation, Inc.
+# Contributed by C-SKY Microsystems and Mentor Graphics.
+#
+# This file 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.
+#
+# This file 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 makes sure that the .fini and .init sections do in
+# fact return. Users may put any desired instructions in those sections.
+# This file is the last thing linked into any executable.
+
+ .file "crtn.S"
+
+# Is this the GLIBC version?
+#if defined(__gnu_linux__)
+ .section .init,"ax",@progbits
+ ldw lr, (sp, 0)
+ addi sp, 8
+ rts
+
+ .section .fini,"ax",@progbits
+ ldw lr, (sp, 0)
+ addi sp, 8
+ rts
+
+#else /* !defined(__gnu_linux__) */
+ .section ".init"
+ ldw lr, (sp, 12)
+ addi sp, 16
+ jmp lr
+
+ .section ".fini"
+ ldw lr, (sp, 12)
+ addi sp, 16
+ jmp lr
+
+# Th-th-th-that is all folks!
+#endif /* defined(__gnu_linux__) */
diff --git a/libgcc/config/csky/lib1funcs.S b/libgcc/config/csky/lib1funcs.S
new file mode 100644
index 00000000000..6aa76c87261
--- /dev/null
+++ b/libgcc/config/csky/lib1funcs.S
@@ -0,0 +1,675 @@
+/* libgcc routines for C-SKY.
+ Copyright (C) 2018-2019 Free Software Foundation, Inc.
+ Contributed by C-SKY Microsystems and Mentor Graphics.
+
+ 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.
+
+ This file 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/>. */
+
+
+/* Use the right prefix for global labels. */
+#define CONCAT1(a, b) CONCAT2(a, b)
+#define CONCAT2(a, b) a ## b
+#define SYM(x) CONCAT1 (__, x)
+
+#ifndef __CSKYBE__
+#define xl r0
+#define xh r1
+#define yl r2
+#define yh r3
+#else
+#define xh r0
+#define xl r1
+#define yh r2
+#define yl r3
+#endif
+
+
+#ifdef __ELF__
+#define TYPE(x) .type SYM (x),@function
+#define SIZE(x) .size SYM (x), . - SYM (x)
+#else
+#define TYPE(x)
+#define SIZE(x)
+#endif
+
+.macro FUNC_START name
+ .text
+ .align 2
+ .globl SYM (\name)
+ TYPE (\name)
+SYM (\name):
+.endm
+
+.macro FUNC_END name
+ SIZE (\name)
+.endm
+
+
+/* Emulate FF1 ("fast find 1") instruction on ck801.
+ Result goes in rx, clobbering ry. */
+#if defined(__CK801__)
+.macro FF1_M rx, ry
+ movi \rx, 32
+10:
+ cmphsi \ry, 1
+ bf 11f
+ subi \rx, \rx, 1
+ lsri \ry, \ry, 1
+ br 10b
+11:
+.endm
+#else
+.macro FF1_M rx, ry
+ ff1 \rx, \ry
+.endm
+#endif
+
+/* Likewise emulate lslc instruction ("logical left shift to C") on CK801. */
+#if defined(__CK801__)
+.macro LSLC_M rx
+ cmpne \rx, \rx
+ addc \rx, \rx
+.endm
+#else
+.macro LSLC_M rx
+ lslc \rx
+.endm
+#endif
+
+/* Emulate the abs instruction. */
+#if defined(__CK802__)
+.macro ABS_M rx
+ btsti \rx, 31
+ bf 10f
+ not \rx
+ addi \rx, 1
+10:
+.endm
+#elif defined(__CK801__)
+.macro ABS_M rx
+ cmplti \rx, 1
+ bf 10f
+ not \rx
+ addi \rx, 1
+10:
+.endm
+#else
+.macro ABS_M rx
+ abs \rx
+.endm
+#endif
+
+/* Emulate the ld.hs ("load signed halfword and extend") instruction
+ on ck801 and ck802. */
+#if defined(__CK801__)
+.macro LDBS_M rx, ry
+ ld.b \rx, (\ry, 0x0)
+ sextb \rx, \rx
+.endm
+#else
+.macro LDBS_M rx, ry
+ ld.bs \rx, (\ry, 0x0)
+.endm
+#endif
+
+#if defined(__CK801__)
+.macro LDHS_M rx, ry
+ ld.h \rx, (\ry, 0x0)
+ sexth \rx, \rx
+.endm
+#else
+.macro LDHS_M rx, ry
+ ld.hs \rx, (\ry, 0x0)
+.endm
+#endif
+
+
+/* Signed and unsigned div/mod/rem functions. */
+
+#ifdef L_udivsi3
+FUNC_START udiv32
+FUNC_START udivsi3
+ cmpnei a1, 0 // look for 0 divisor
+ bt 9f
+ trap 3 // divide by 0
+9:
+ // control iterations, skip across high order 0 bits in dividend
+ cmpnei a0, 0
+ bt 8f
+ jmp lr // 0 dividend quick return
+8:
+ push l0
+ movi a2, 1 // a2 is quotient (1 for a sentinel)
+ mov a3, a0
+ FF1_M l0, a3 // figure distance to skip
+ lsl a2, l0 // move the sentinel along (with 0's behind)
+ lsl a0, l0 // and the low 32 bits of numerator
+
+ // FIXME: Is this correct?
+ mov a3, a1 // looking at divisor
+ FF1_M l0, a3 // I can move 32-l0 more bits to left.
+ addi l0, 1 // ok, one short of that...
+ mov a3, a0
+ lsr a3, l0 // bits that came from low order...
+ not l0 // l0 == "32-n" == LEFT distance
+ addi l0, 33 // this is (32-n)
+ lsl a2,l0 // fixes the high 32 (quotient)
+ lsl a0,l0
+ cmpnei a2,0
+ bf 4f // the sentinel went away...
+
+ // run the remaining bits
+1:
+ LSLC_M a0 // 1 bit left shift of a3-a0
+ addc a3, a3
+ cmphs a3, a1 // upper 32 of dividend >= divisor?
+ bf 2f
+ subu a3, a1 // if yes, subtract divisor
+2:
+ addc a2, a2 // shift by 1 and count subtracts
+ bf 1b // if sentinel falls out of quotient, stop
+
+4:
+ mov a0, a2 // return quotient
+ mov a1, a3 // and piggyback the remainder
+ pop l0
+FUNC_END udiv32
+FUNC_END udivsi3
+#endif
+
+#ifdef L_umodsi3
+FUNC_START urem32
+FUNC_START umodsi3
+ cmpnei a1, 0 // look for 0 divisor
+ bt 9f
+ trap 3 // divide by 0
+9:
+ // control iterations, skip across high order 0 bits in dividend
+ cmpnei a0, 0
+ bt 8f
+ jmp lr // 0 dividend quick return
+8:
+ mov a2, a0
+ FF1_M a3, a2 // figure distance to skip
+ movi a2, 1 // a2 is quotient (1 for a sentinel)
+ lsl a2, a3 // move the sentinel along (with 0's behind)
+ lsl a0, a3 // and the low 32 bits of numerator
+ movi a3, 0
+
+1:
+ LSLC_M a0 // 1 bit left shift of a3-a0
+ addc a3, a3
+ cmphs a3, a1 // upper 32 of dividend >= divisor?
+ bf 2f
+ subu a3, a1 // if yes, subtract divisor
+2:
+ addc a2, a2 // shift by 1 and count subtracts
+ bf 1b // if sentinel falls out of quotient, stop
+
+4:
+ mov a0, a3 // and piggyback the remainder
+ jmp lr
+FUNC_END urem32
+FUNC_END umodsi3
+#endif
+
+
+#ifdef L_divsi3
+FUNC_START div32
+FUNC_START divsi3
+ cmpnei a1, 0 // look for 0 divisor
+ bt 9f
+ trap 3 // divide by 0
+9:
+ // control iterations, skip across high order 0 bits in dividend
+ cmpnei a0, 0
+ bt 8f
+ jmp lr // 0 dividend quick return
+8:
+ push l0, l1
+ mov l1, a0
+ xor l1, a1 // calc sign of quotient
+ ABS_M a0
+ ABS_M a1
+ movi a2, 1 // a2 is quotient (1 for a sentinel)
+ mov a3, a0
+ FF1_M l0, a3 // figure distance to skip
+ lsl a2, l0 // move the sentinel along (with 0's behind)
+ lsl a0, l0 // and the low 32 bits of numerator
+
+ // FIXME: is this correct?
+ mov a3, a1 // looking at divisor
+ FF1_M l0, a3 // I can move 32-l0 more bits to left.
+ addi l0, 1 // ok, one short of that...
+ mov a3, a0
+ lsr a3, l0 // bits that came from low order...
+ not l0 // l0 == "32-n" == LEFT distance
+ addi l0, 33 // this is (32-n)
+ lsl a2,l0 // fixes the high 32 (quotient)
+ lsl a0,l0
+ cmpnei a2,0
+ bf 4f // the sentinel went away...
+
+ // run the remaining bits
+1:
+ LSLC_M a0 // 1 bit left shift of a3-a0
+ addc a3, a3
+ cmphs a3, a1 // upper 32 of dividend >= divisor?
+ bf 2f
+ subu a3, a1 // if yes, subtract divisor
+2:
+ addc a2, a2 // shift by 1 and count subtracts
+ bf 1b // if sentinel falls out of quotient, stop
+
+4:
+ mov a0, a2 // return quotient
+ mov a1, a3 // and piggyback the remainder
+ LSLC_M l1 // after adjusting for sign
+ bf 3f
+ not a0
+ addi a0, 1
+ not a1
+ addi a1, 1
+3:
+ pop l0, l1
+FUNC_END div32
+FUNC_END divsi3
+#endif
+
+#ifdef L_modsi3
+FUNC_START rem32
+FUNC_START modsi3
+ push l0
+ cmpnei a1, 0 // look for 0 divisor
+ bt 9f
+ trap 3 // divide by 0
+9:
+ // control iterations, skip across high order 0 bits in dividend
+ cmpnei a0, 0
+ bt 8f
+ pop l0 // 0 dividend quick return
+8:
+ mov l0, a0
+ ABS_M a0
+ ABS_M a1
+ mov a2, a0
+ FF1_M a3, a2 // figure distance to skip
+ movi a2, 1 // a2 is quotient (1 for a sentinel)
+ lsl a2, a3 // move the sentinel along (with 0's behind)
+ lsl a0, a3 // and the low 32 bits of numerator
+ movi a3, 0
+
+ // run the remaining bits
+1:
+ LSLC_M a0 // 1 bit left shift of a3-a0
+ addc a3, a3
+ cmphs a3, a1 // upper 32 of dividend >= divisor?
+ bf 2f
+ subu a3, a1 // if yes, subtract divisor
+2:
+ addc a2, a2 // shift by 1 and count subtracts
+ bf 1b // if sentinel falls out of quotient, stop
+
+4:
+ mov a0, a3 // and piggyback the remainder
+ LSLC_M l0 // after adjusting for sign
+ bf 3f
+ not a0
+ addi a0, 1
+3:
+ pop l0
+FUNC_END rem32
+FUNC_END modsi3
+#endif
+
+/* Unordered comparisons for single and double float. */
+
+#ifdef L_unordsf2
+FUNC_START unordsf2
+#if defined(__CK801__)
+ subi sp, 4
+ st.w r4, (sp, 0x0)
+ lsli r2, r0, 1
+ lsli r3, r1, 1
+ asri r4, r2, 24
+ not r4
+ cmpnei r4, 0
+ bt 1f
+ lsli r4, r0, 9
+ cmpnei r4, 0
+ bt 3f
+1:
+ asri r4, r3, 24
+ not r4
+ cmpnei r4, 0
+ bt 2f
+ lsli r4, r1, 9
+ cmpnei r4, 0
+ bt 3f
+2:
+ ld.w r4, (sp, 0x0)
+ addi sp, 4
+ movi r0, 0
+ rts
+3:
+ ld.w r4, (sp, 0x0)
+ addi sp, 4
+ movi r0, 1
+ rts
+#elif defined(__CK802__)
+ lsli r2, r0, 1
+ lsli r3, r1, 1
+ asri r2, r2, 24
+ not r13, r2
+ cmpnei r13, 0
+ bt 1f
+ lsli r13, r0, 9
+ cmpnei r13, 0
+ bt 3f
+1:
+ asri r3, r3, 24
+ not r13, r3
+ cmpnei r13, 0
+ bt 2f
+ lsli r13, r1, 9
+ cmpnei r13, 0
+ bt 3f
+2:
+ movi r0, 0
+ rts
+3:
+ movi r0, 1
+ rts
+#else
+ lsli r2, r0, 1
+ lsli r3, r1, 1
+ asri r2, r2, 24
+ not r13, r2
+ bnez r13, 1f
+ lsli r13, r0, 9
+ bnez r13, 3f
+1:
+ asri r3, r3, 24
+ not r13, r3
+ bnez r13, 2f
+ lsli r13, r1, 9
+ bnez r13, 3f
+2:
+ movi r0, 0
+ rts
+3:
+ movi r0, 1
+ rts
+#endif
+FUNC_END unordsf2
+#endif
+
+#ifdef L_unorddf2
+FUNC_START unorddf2
+#if defined(__CK801__)
+ subi sp, 8
+ st.w r4, (sp, 0x0)
+ st.w r5, (sp, 0x4)
+ lsli r4, xh, 1
+ asri r4, r4, 21
+ not r4
+ cmpnei r4, 0
+ bt 1f
+ mov r4, xl
+ lsli r5, xh, 12
+ or r4, r5
+ cmpnei r4, 0
+ bt 3f
+1:
+ lsli r4, yh, 1
+ asri r4, r4, 21
+ not r4
+ cmpnei r4, 0
+ bt 2f
+ mov r4,yl
+ lsli r5, yh, 12
+ or r4, r5
+ cmpnei r4, 0
+ bt 3f
+2:
+ ld.w r4, (sp, 0x0)
+ ld.w r5, (sp, 0x4)
+ addi sp, 8
+ movi r0, 0
+ rts
+3:
+ ld.w r4, (sp, 0x0)
+ ld.w r5, (sp, 0x4)
+ addi sp, 8
+ movi r0, 1
+ rts
+#elif defined(__CK802__)
+ lsli r13, xh, 1
+ asri r13, r13, 21
+ not r13
+ cmpnei r13, 0
+ bt 1f
+ lsli xh, xh, 12
+ or r13, xl, xh
+ cmpnei r13, 0
+ bt 3f
+1:
+ lsli r13, yh, 1
+ asri r13, r13, 21
+ not r13
+ cmpnei r13, 0
+ bt 2f
+ lsli yh, yh, 12
+ or r13, yl, yh
+ cmpnei r13, 0
+ bt 3f
+2:
+ movi r0, 0
+ rts
+3:
+ movi r0, 1
+ rts
+#else
+ lsli r13, xh, 1
+ asri r13, r13, 21
+ not r13
+ bnez r13, 1f
+ lsli xh, xh, 12
+ or r13, xl, xh
+ bnez r13, 3f
+1:
+ lsli r13, yh, 1
+ asri r13, r13, 21
+ not r13
+ bnez r13, 2f
+ lsli yh, yh, 12
+ or r13, yl, yh
+ bnez r13, 3f
+2:
+ movi r0, 0
+ rts
+3:
+ movi r0, 1
+ rts
+#endif
+FUNC_END unorddf2
+#endif
+
+/* When optimizing for size on ck801 and ck802, GCC emits calls to the
+ following helper functions when expanding casesi, instead of emitting
+ the table lookup and jump inline. Note that in these functions the
+ jump is handled by tweaking the value of lr before rts. */
+#ifdef L_csky_case_sqi
+FUNC_START _gnu_csky_case_sqi
+ subi sp, 4
+ st.w a1, (sp, 0x0)
+ mov a1, lr
+ add a1, a1, a0
+ LDBS_M a1, a1
+ lsli a1, a1, 1
+ add lr, lr, a1
+ ld.w a1, (sp, 0x0)
+ addi sp, 4
+ rts
+FUNC_END _gnu_csky_case_sqi
+#endif
+
+#ifdef L_csky_case_uqi
+FUNC_START _gnu_csky_case_uqi
+ subi sp, 4
+ st.w a1, (sp, 0x0)
+ mov a1, lr
+ add a1, a1, a0
+ ld.b a1, (a1, 0x0)
+ lsli a1, a1, 1
+ add lr, lr, a1
+ ld.w a1, (sp, 0x0)
+ addi sp, 4
+ rts
+FUNC_END _gnu_csky_case_uqi
+#endif
+
+#ifdef L_csky_case_shi
+FUNC_START _gnu_csky_case_shi
+ subi sp, 8
+ st.w a0, (sp, 0x4)
+ st.w a1, (sp, 0x0)
+ mov a1, lr
+ lsli a0, a0, 1
+ add a1, a1, a0
+ LDHS_M a1, a1
+ lsli a1, a1, 1
+ add lr, lr, a1
+ ld.w a0, (sp, 0x4)
+ ld.w a1, (sp, 0x0)
+ addi sp, 8
+ rts
+FUNC_END _gnu_csky_case_shi
+#endif
+
+#ifdef L_csky_case_uhi
+FUNC_START _gnu_csky_case_uhi
+ subi sp, 8
+ st.w a0, (sp, 0x4)
+ st.w a1, (sp, 0x0)
+ mov a1, lr
+ lsli a0, a0, 1
+ add a1, a1, a0
+ ld.h a1, (a1, 0x0)
+ lsli a1, a1, 1
+ add lr, lr, a1
+ ld.w a0, (sp, 0x4)
+ ld.w a1, (sp, 0x0)
+ addi sp, 8
+ rts
+FUNC_END _gnu_csky_case_uhi
+#endif
+
+#ifdef L_csky_case_si
+FUNC_START _gnu_csky_case_si
+ subi sp, 8
+ st.w a0, (sp, 0x4)
+ st.w a1, (sp, 0x0)
+ mov a1, lr
+ addi a1, a1, 2 // Align to word.
+ bclri a1, a1, 1
+ mov lr, a1
+ lsli a0, a0, 2
+ add a1, a1, a0
+ ld.w a0, (a1, 0x0)
+ add lr, lr, a0
+ ld.w a0, (sp, 0x4)
+ ld.w a1, (sp, 0x0)
+ addi sp, 8
+ rts
+FUNC_END _gnu_csky_case_si
+#endif
+
+/* GCC expects that {__eq,__ne,__gt,__ge,__le,__lt}{df2,sf2}
+ will behave as __cmpdf2. So, we stub the implementations to
+ jump on to __cmpdf2 and __cmpsf2.
+
+ All of these short-circuit the return path so that __cmp{sd}f2
+ will go directly back to the caller. */
+
+.macro COMPARE_DF_JUMP name
+ .import SYM (cmpdf2)
+FUNC_START \name
+ jmpi SYM (cmpdf2)
+FUNC_END \name
+.endm
+
+#ifdef L_eqdf2
+COMPARE_DF_JUMP eqdf2
+#endif /* L_eqdf2 */
+
+#ifdef L_nedf2
+COMPARE_DF_JUMP nedf2
+#endif /* L_nedf2 */
+
+#ifdef L_gtdf2
+COMPARE_DF_JUMP gtdf2
+#endif /* L_gtdf2 */
+
+#ifdef L_gedf2
+COMPARE_DF_JUMP gedf2
+#endif /* L_gedf2 */
+
+#ifdef L_ltdf2
+COMPARE_DF_JUMP ltdf2
+#endif /* L_ltdf2 */
+
+#ifdef L_ledf2
+COMPARE_DF_JUMP ledf2
+#endif /* L_ledf2 */
+
+/* Single-precision floating point stubs. */
+
+.macro COMPARE_SF_JUMP name
+ .import SYM (cmpsf2)
+FUNC_START \name
+ jmpi SYM (cmpsf2)
+FUNC_END \name
+.endm
+
+#ifdef L_eqsf2
+COMPARE_SF_JUMP eqsf2
+#endif /* L_eqsf2 */
+
+#ifdef L_nesf2
+COMPARE_SF_JUMP nesf2
+#endif /* L_nesf2 */
+
+#ifdef L_gtsf2
+COMPARE_SF_JUMP gtsf2
+#endif /* L_gtsf2 */
+
+#ifdef L_gesf2
+COMPARE_SF_JUMP __gesf2
+#endif /* L_gesf2 */
+
+#ifdef L_ltsf2
+COMPARE_SF_JUMP __ltsf2
+#endif /* L_ltsf2 */
+
+#ifdef L_lesf2
+COMPARE_SF_JUMP lesf2
+#endif /* L_lesf2 */
diff --git a/libgcc/config/csky/linux-atomic.c b/libgcc/config/csky/linux-atomic.c
new file mode 100644
index 00000000000..53add863690
--- /dev/null
+++ b/libgcc/config/csky/linux-atomic.c
@@ -0,0 +1,299 @@
+/* Linux-specific atomic operations for C-SKY.
+ Copyright (C) 2018-2019 Free Software Foundation, Inc.
+ Contributed by C-SKY Microsystems and Mentor Graphics.
+
+ 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/>. */
+
+/* Kernel helper for compare-and-exchange. */
+inline int
+__kernel_cmpxchg (int oldval, int newval, volatile int *ptr)
+{
+ register int _a0 asm ("a0") = oldval;
+ register int _a1 asm ("a1") = newval;
+ register volatile int *_a2 asm ("a2") = ptr;
+ __asm__ __volatile__ ("trap 2\n" \
+ :"+r" (_a0) :"r" (_a1) , "r" (_a2) \
+ : "a3", "memory"); \
+ return _a0;
+}
+
+
+/* Kernel helper for memory barrier. */
+inline void __kernel_dmb (void)
+{
+ asm ("sync":::"memory");
+}
+
+/* Note: we implement byte, short and int versions of atomic operations using
+ the above kernel helpers, but there is no support for "long long" (64-bit)
+ operations as yet. */
+
+#define HIDDEN __attribute__ ((visibility ("hidden")))
+
+#ifdef __CSKYLE__
+#define INVERT_MASK_1 0
+#define INVERT_MASK_2 0
+#else
+#define INVERT_MASK_1 24
+#define INVERT_MASK_2 16
+#endif
+
+#define MASK_1 0xffu
+#define MASK_2 0xffffu
+
+#define FETCH_AND_OP_WORD(OP, PFX_OP, INF_OP) \
+ int HIDDEN \
+ __sync_fetch_and_##OP##_4 (int *ptr, int val) \
+ { \
+ int failure, tmp; \
+ \
+ do \
+ { \
+ tmp = *ptr; \
+ failure = __kernel_cmpxchg (tmp, PFX_OP (tmp INF_OP val), ptr); \
+ } \
+ while (failure != 0); \
+ \
+ return tmp; \
+ }
+
+FETCH_AND_OP_WORD (add, , +)
+FETCH_AND_OP_WORD (sub, , -)
+FETCH_AND_OP_WORD (or, , |)
+FETCH_AND_OP_WORD (and, , &)
+FETCH_AND_OP_WORD (xor, , ^)
+FETCH_AND_OP_WORD (nand, ~, &)
+
+#define NAME_oldval(OP, WIDTH) __sync_fetch_and_##OP##_##WIDTH
+#define NAME_newval(OP, WIDTH) __sync_##OP##_and_fetch_##WIDTH
+
+/* Implement both __sync_<op>_and_fetch and __sync_fetch_and_<op> for
+ subword-sized quantities. */
+
+#define SUBWORD_SYNC_OP(OP, PFX_OP, INF_OP, TYPE, WIDTH, RETURN) \
+ TYPE HIDDEN \
+ NAME##_##RETURN (OP, WIDTH) (TYPE *ptr, TYPE val) \
+ { \
+ int *wordptr = (int *) ((unsigned int) ptr & ~3); \
+ unsigned int mask, shift, oldval, newval; \
+ int failure; \
+ \
+ shift = (((unsigned int) ptr & 3) << 3) ^ INVERT_MASK_##WIDTH; \
+ mask = MASK_##WIDTH << shift; \
+ \
+ do \
+ { \
+ oldval = *wordptr; \
+ newval = ((PFX_OP (((oldval & mask) >> shift) \
+ INF_OP (unsigned int) val)) << shift) & mask; \
+ newval |= oldval & ~mask; \
+ failure = __kernel_cmpxchg (oldval, newval, wordptr); \
+ } \
+ while (failure != 0); \
+ \
+ return (RETURN & mask) >> shift; \
+ }
+
+SUBWORD_SYNC_OP (add, , +, unsigned short, 2, oldval)
+SUBWORD_SYNC_OP (sub, , -, unsigned short, 2, oldval)
+SUBWORD_SYNC_OP (or, , |, unsigned short, 2, oldval)
+SUBWORD_SYNC_OP (and, , &, unsigned short, 2, oldval)
+SUBWORD_SYNC_OP (xor, , ^, unsigned short, 2, oldval)
+SUBWORD_SYNC_OP (nand, ~, &, unsigned short, 2, oldval)
+
+SUBWORD_SYNC_OP (add, , +, unsigned char, 1, oldval)
+SUBWORD_SYNC_OP (sub, , -, unsigned char, 1, oldval)
+SUBWORD_SYNC_OP (or, , |, unsigned char, 1, oldval)
+SUBWORD_SYNC_OP (and, , &, unsigned char, 1, oldval)
+SUBWORD_SYNC_OP (xor, , ^, unsigned char, 1, oldval)
+SUBWORD_SYNC_OP (nand, ~, &, unsigned char, 1, oldval)
+
+#define OP_AND_FETCH_WORD(OP, PFX_OP, INF_OP) \
+ int HIDDEN \
+ __sync_##OP##_and_fetch_4 (int *ptr, int val) \
+ { \
+ int tmp, failure; \
+ \
+ do \
+ { \
+ tmp = *ptr; \
+ failure = __kernel_cmpxchg (tmp, PFX_OP tmp INF_OP val, ptr); \
+ } \
+ while (failure != 0); \
+ \
+ return PFX_OP tmp INF_OP val; \
+ }
+
+OP_AND_FETCH_WORD (add, , +)
+OP_AND_FETCH_WORD (sub, , -)
+OP_AND_FETCH_WORD (or, , |)
+OP_AND_FETCH_WORD (and, , &)
+OP_AND_FETCH_WORD (xor, , ^)
+OP_AND_FETCH_WORD (nand, ~, &)
+
+SUBWORD_SYNC_OP (add, , +, unsigned short, 2, newval)
+SUBWORD_SYNC_OP (sub, , -, unsigned short, 2, newval)
+SUBWORD_SYNC_OP (or, , |, unsigned short, 2, newval)
+SUBWORD_SYNC_OP (and, , &, unsigned short, 2, newval)
+SUBWORD_SYNC_OP (xor, , ^, unsigned short, 2, newval)
+SUBWORD_SYNC_OP (nand, ~, &, unsigned short, 2, newval)
+
+SUBWORD_SYNC_OP (add, , +, unsigned char, 1, newval)
+SUBWORD_SYNC_OP (sub, , -, unsigned char, 1, newval)
+SUBWORD_SYNC_OP (or, , |, unsigned char, 1, newval)
+SUBWORD_SYNC_OP (and, , &, unsigned char, 1, newval)
+SUBWORD_SYNC_OP (xor, , ^, unsigned char, 1, newval)
+SUBWORD_SYNC_OP (nand, ~, &, unsigned char, 1, newval)
+
+int HIDDEN
+__sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
+{
+ int actual_oldval, fail;
+
+ while (1)
+ {
+ actual_oldval = *ptr;
+
+ if (oldval != actual_oldval)
+ return actual_oldval;
+
+ fail = __kernel_cmpxchg (actual_oldval, newval, ptr);
+
+ if (!fail)
+ return oldval;
+ }
+}
+
+#define SUBWORD_VAL_CAS(TYPE, WIDTH) \
+ TYPE HIDDEN \
+ __sync_val_compare_and_swap_##WIDTH (TYPE *ptr, TYPE oldval, \
+ TYPE newval) \
+ { \
+ int *wordptr = (int *)((unsigned int) ptr & ~3), fail; \
+ unsigned int mask, shift, actual_oldval, actual_newval; \
+ \
+ shift = (((unsigned int) ptr & 3) << 3) ^ INVERT_MASK_##WIDTH; \
+ mask = MASK_##WIDTH << shift; \
+ \
+ while (1) \
+ { \
+ actual_oldval = *wordptr; \
+ \
+ if (((actual_oldval & mask) >> shift) != (unsigned int) oldval) \
+ return (actual_oldval & mask) >> shift; \
+ \
+ actual_newval = (actual_oldval & ~mask) \
+ | (((unsigned int) newval << shift) & mask); \
+ \
+ fail = __kernel_cmpxchg (actual_oldval, actual_newval, \
+ wordptr); \
+ \
+ if (!fail) \
+ return oldval; \
+ } \
+ }
+
+SUBWORD_VAL_CAS (unsigned short, 2)
+SUBWORD_VAL_CAS (unsigned char, 1)
+
+typedef unsigned char bool;
+
+bool HIDDEN
+__sync_bool_compare_and_swap_4 (int *ptr, int oldval, int newval)
+{
+ int failure = __kernel_cmpxchg (oldval, newval, ptr);
+ return (failure == 0);
+}
+
+#define SUBWORD_BOOL_CAS(TYPE, WIDTH) \
+ bool HIDDEN \
+ __sync_bool_compare_and_swap_##WIDTH (TYPE *ptr, TYPE oldval, \
+ TYPE newval) \
+ { \
+ TYPE actual_oldval \
+ = __sync_val_compare_and_swap_##WIDTH (ptr, oldval, newval); \
+ return (oldval == actual_oldval); \
+ }
+
+SUBWORD_BOOL_CAS (unsigned short, 2)
+SUBWORD_BOOL_CAS (unsigned char, 1)
+
+void HIDDEN
+__sync_synchronize (void)
+{
+ __kernel_dmb ();
+}
+
+int HIDDEN
+__sync_lock_test_and_set_4 (int *ptr, int val)
+{
+ int failure, oldval;
+
+ do
+ {
+ oldval = *ptr;
+ failure = __kernel_cmpxchg (oldval, val, ptr);
+ }
+ while (failure != 0);
+
+ return oldval;
+}
+
+#define SUBWORD_TEST_AND_SET(TYPE, WIDTH) \
+ TYPE HIDDEN \
+ __sync_lock_test_and_set_##WIDTH (TYPE *ptr, TYPE val) \
+ { \
+ int failure; \
+ unsigned int oldval, newval, shift, mask; \
+ int *wordptr = (int *) ((unsigned int) ptr & ~3); \
+ \
+ shift = (((unsigned int) ptr & 3) << 3) ^ INVERT_MASK_##WIDTH; \
+ mask = MASK_##WIDTH << shift; \
+ \
+ do \
+ { \
+ oldval = *wordptr; \
+ newval = ((oldval & ~mask) \
+ | (((unsigned int) val << shift) & mask)); \
+ failure = __kernel_cmpxchg (oldval, newval, wordptr); \
+ } \
+ while (failure != 0); \
+ \
+ return (oldval & mask) >> shift; \
+ }
+
+SUBWORD_TEST_AND_SET (unsigned short, 2)
+SUBWORD_TEST_AND_SET (unsigned char, 1)
+
+#define SYNC_LOCK_RELEASE(TYPE, WIDTH) \
+ void HIDDEN \
+ __sync_lock_release_##WIDTH (TYPE *ptr) \
+ { \
+ /* All writes before this point must be seen before we release \
+ the lock itself. */ \
+ __kernel_dmb (); \
+ *ptr = 0; \
+ }
+
+SYNC_LOCK_RELEASE (int, 4)
+SYNC_LOCK_RELEASE (short, 2)
+SYNC_LOCK_RELEASE (char, 1)
diff --git a/libgcc/config/csky/linux-unwind.h b/libgcc/config/csky/linux-unwind.h
new file mode 100644
index 00000000000..e19244bbf8b
--- /dev/null
+++ b/libgcc/config/csky/linux-unwind.h
@@ -0,0 +1,128 @@
+/* DWARF2 EH unwinding support for C-SKY Linux.
+ Copyright (C) 2018-2019 Free Software Foundation, Inc.
+ Contributed by C-SKY Microsystems and Mentor Graphics.
+
+ 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/>. */
+
+#ifndef inhibit_libc
+
+/* Do code reading to identify a signal frame, and set the frame state data
+ appropriately. See unwind-dw2.c for the structs. */
+
+#include <signal.h>
+#include <asm/unistd.h>
+
+#define TRAP0_V1 0x0008
+#define MOVI_R1_119_V1 (0x6000 + (119 << 4) + 1)
+#define MOVI_R1_127_V1 (0x6000 + (127 << 4) + 1)
+#define ADDI_R1_32_V1 (0x2000 + (31 << 4) + 1)
+#define ADDI_R1_14_V1 (0x2000 + (13 << 4) + 1)
+#define ADDI_R1_12_V1 (0x2000 + (11 << 4) + 1)
+
+#define TRAP0_V2_PART0 0xc000
+#define TRAP0_V2_PART1 0x2020
+#define MOVI_R7_119_V2_PART0 0xea07
+#define MOVI_R7_119_V2_PART1 119
+#define MOVI_R7_173_V2_PART0 0xea07
+#define MOVI_R7_173_V2_PART1 173
+#define MOVI_R7_139_V2_PART0 0xea07
+#define MOVI_R7_139_V2_PART1 139
+
+#define sc_pt_regs(x) (sc->sc_pt_regs.x)
+#define sc_pt_regs_lr (sc->sc_pt_regs.lr)
+#define sc_pt_regs_tls(x) sc_pt_regs(x)
+
+#define MD_FALLBACK_FRAME_STATE_FOR csky_fallback_frame_state
+
+static _Unwind_Reason_Code
+csky_fallback_frame_state (struct _Unwind_Context *context,
+ _Unwind_FrameState *fs)
+{
+ u_int16_t *pc = (u_int16_t *) context->ra;
+ struct sigcontext *sc;
+ _Unwind_Ptr new_cfa;
+ int i;
+
+ /* movi r7, __NR_rt_sigreturn; trap 0 */
+ if ((*(pc + 0) == MOVI_R7_139_V2_PART0)
+ && (*(pc + 1) == MOVI_R7_139_V2_PART1) && (*(pc + 2) == TRAP0_V2_PART0)
+ && (*(pc + 3) == TRAP0_V2_PART1))
+ {
+ struct rt_sigframe
+ {
+ int sig;
+ struct siginfo *pinfo;
+ void *puc;
+ siginfo_t info;
+ ucontext_t uc;
+ } *_rt = context->cfa;
+ sc = &(_rt->uc.uc_mcontext);
+ }
+ else
+ return _URC_END_OF_STACK;
+
+ new_cfa = (_Unwind_Ptr) sc_pt_regs (usp);
+ fs->regs.cfa_how = CFA_REG_OFFSET;
+ fs->regs.cfa_reg = STACK_POINTER_REGNUM;
+ fs->regs.cfa_offset = new_cfa - (_Unwind_Ptr) context->cfa;
+
+ fs->regs.reg[0].how = REG_SAVED_OFFSET;
+ fs->regs.reg[0].loc.offset = (_Unwind_Ptr) & sc_pt_regs (a0) - new_cfa;
+
+ fs->regs.reg[1].how = REG_SAVED_OFFSET;
+ fs->regs.reg[1].loc.offset = (_Unwind_Ptr) & sc_pt_regs (a1) - new_cfa;
+
+ fs->regs.reg[2].how = REG_SAVED_OFFSET;
+ fs->regs.reg[2].loc.offset = (_Unwind_Ptr) & sc_pt_regs (a2) - new_cfa;
+
+ fs->regs.reg[3].how = REG_SAVED_OFFSET;
+ fs->regs.reg[3].loc.offset = (_Unwind_Ptr) & sc_pt_regs (a3) - new_cfa;
+
+ for (i = 4; i < 14; i++)
+ {
+ fs->regs.reg[i].how = REG_SAVED_OFFSET;
+ fs->regs.reg[i].loc.offset =
+ (_Unwind_Ptr) & sc_pt_regs (regs[i - 4]) - new_cfa;
+ }
+
+ for (i = 16; i < 31; i++)
+ {
+ fs->regs.reg[i].how = REG_SAVED_OFFSET;
+ fs->regs.reg[i].loc.offset =
+ (_Unwind_Ptr) & sc_pt_regs (exregs[i - 16]) - new_cfa;
+ }
+
+ fs->regs.reg[31].loc.offset =
+ (_Unwind_Ptr) & sc_pt_regs_tls (tls) - new_cfa;
+ /* FIXME : hi lo ? */
+ fs->regs.reg[15].how = REG_SAVED_OFFSET;
+ fs->regs.reg[15].loc.offset = (_Unwind_Ptr) & sc_pt_regs_lr - new_cfa;
+
+ fs->regs.reg[32].how = REG_SAVED_OFFSET;
+ fs->regs.reg[32].loc.offset = (_Unwind_Ptr) & sc_pt_regs (pc) - new_cfa;
+ fs->retaddr_column = 32;
+ fs->signal_frame = 1;
+
+ return _URC_NO_REASON;
+}
+
+#endif
diff --git a/libgcc/config/csky/t-csky b/libgcc/config/csky/t-csky
new file mode 100644
index 00000000000..a9490017439
--- /dev/null
+++ b/libgcc/config/csky/t-csky
@@ -0,0 +1,28 @@
+# Makefile fragment for all C-SKY targets.
+# Copyright (C) 2018-2019 Free Software Foundation, Inc.
+# Contributed by C-SKY Microsystems and Mentor Graphics.
+#
+# 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/>.
+
+LIB1ASMSRC = csky/lib1funcs.S
+LIB1ASMFUNCS = _divsi3 _udivsi3 _modsi3 _umodsi3 _unorddf2 _unordsf2 \
+ _csky_case_sqi _csky_case_uqi _csky_case_shi _csky_case_uhi _csky_case_si
+
+LIB2FUNCS_EXCLUDE += _unord_df
+LIB2FUNCS_EXCLUDE += _unord_sf
+
+TARGET_LIBGCC2_CFLAGS=-O3 -DNO_FLOATLIB_FIXUNSDFSI
diff --git a/libgcc/config/csky/t-linux-csky b/libgcc/config/csky/t-linux-csky
new file mode 100644
index 00000000000..88cbfb15130
--- /dev/null
+++ b/libgcc/config/csky/t-linux-csky
@@ -0,0 +1,21 @@
+# Makefile fragment for C-SKY targets running Linux.
+# Copyright (C) 2018-2019 Free Software Foundation, Inc.
+# Contributed by C-SKY Microsystems and Mentor Graphics.
+#
+# 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/>.
+
+LIB2ADD_ST += $(srcdir)/config/csky/linux-atomic.c
diff --git a/libgcc/config/darwin-64.c b/libgcc/config/darwin-64.c
index b4604f6e582..905477e5dae 100644
--- a/libgcc/config/darwin-64.c
+++ b/libgcc/config/darwin-64.c
@@ -1,6 +1,6 @@
/* Functions shipped in the ppc64 and x86_64 version of libgcc_s.1.dylib
in older Mac OS X versions, preserved for backwards compatibility.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/darwin-crt-tm.c b/libgcc/config/darwin-crt-tm.c
index da31e78ace9..cb327471719 100644
--- a/libgcc/config/darwin-crt-tm.c
+++ b/libgcc/config/darwin-crt-tm.c
@@ -1,5 +1,5 @@
/* Provide the runtime infrastructure for the transactional memory lib.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Iain Sandoe <iains@gcc.gnu.org>
This file is part of GCC.
diff --git a/libgcc/config/darwin-crt3.c b/libgcc/config/darwin-crt3.c
index bedaaebd934..86e3bd66819 100644
--- a/libgcc/config/darwin-crt3.c
+++ b/libgcc/config/darwin-crt3.c
@@ -1,5 +1,5 @@
/* __cxa_atexit backwards-compatibility support for Darwin.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/darwin10-unwind-find-enc-func.c b/libgcc/config/darwin10-unwind-find-enc-func.c
new file mode 100644
index 00000000000..67c43757e50
--- /dev/null
+++ b/libgcc/config/darwin10-unwind-find-enc-func.c
@@ -0,0 +1,13 @@
+#include "tconfig.h"
+#include "tsystem.h"
+#include "unwind-dw2-fde.h"
+
+void *
+_darwin10_Unwind_FindEnclosingFunction (void *pc)
+{
+ struct dwarf_eh_bases bases;
+ const struct dwarf_fde *fde = _Unwind_Find_FDE (pc-1, &bases);
+ if (fde)
+ return bases.func;
+ return NULL;
+}
diff --git a/libgcc/config/epiphany/crti.S b/libgcc/config/epiphany/crti.S
index 919babf643a..0009775e145 100644
--- a/libgcc/config/epiphany/crti.S
+++ b/libgcc/config/epiphany/crti.S
@@ -1,5 +1,5 @@
# Start .init and .fini sections.
-# Copyright (C) 2010-2018 Free Software Foundation, Inc.
+# Copyright (C) 2010-2019 Free Software Foundation, Inc.
# Contributed by Embecosm on behalf of Adapteva, Inc.
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/epiphany/crtint.S b/libgcc/config/epiphany/crtint.S
index 16adf8ba547..212f50b1a07 100644
--- a/libgcc/config/epiphany/crtint.S
+++ b/libgcc/config/epiphany/crtint.S
@@ -1,5 +1,5 @@
# initialize config for -mfp-mode=int
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2019 Free Software Foundation, Inc.
# Contributed by Embecosm on behalf of Adapteva, Inc.
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/epiphany/crtm1reg-r43.S b/libgcc/config/epiphany/crtm1reg-r43.S
index 3a0a75abeaa..27fa3e179dc 100644
--- a/libgcc/config/epiphany/crtm1reg-r43.S
+++ b/libgcc/config/epiphany/crtm1reg-r43.S
@@ -1,5 +1,5 @@
# initialize config for -m1reg-r43
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2019 Free Software Foundation, Inc.
# Contributed by Embecosm on behalf of Adapteva, Inc.
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/epiphany/crtm1reg-r63.S b/libgcc/config/epiphany/crtm1reg-r63.S
index 624d66de6af..962fbf58b05 100644
--- a/libgcc/config/epiphany/crtm1reg-r63.S
+++ b/libgcc/config/epiphany/crtm1reg-r63.S
@@ -1,5 +1,5 @@
# initialize config for -m1reg-r63
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2019 Free Software Foundation, Inc.
# Contributed by Embecosm on behalf of Adapteva, Inc.
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/epiphany/crtn.S b/libgcc/config/epiphany/crtn.S
index c7d49a3ec55..5d90d7c1dec 100644
--- a/libgcc/config/epiphany/crtn.S
+++ b/libgcc/config/epiphany/crtn.S
@@ -1,5 +1,5 @@
# End .init and .fini sections.
-# Copyright (C) 2010-2018 Free Software Foundation, Inc.
+# Copyright (C) 2010-2019 Free Software Foundation, Inc.
# Contributed by Embecosm on behalf of Adapteva, Inc.
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/epiphany/crtrunc.S b/libgcc/config/epiphany/crtrunc.S
index e03a79beabe..cfed17efdef 100644
--- a/libgcc/config/epiphany/crtrunc.S
+++ b/libgcc/config/epiphany/crtrunc.S
@@ -1,5 +1,5 @@
# initialize config for -mfp-mode=truncate
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2019 Free Software Foundation, Inc.
# Contributed by Embecosm on behalf of Adapteva, Inc.
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/epiphany/divsi3-float.S b/libgcc/config/epiphany/divsi3-float.S
index fe3b922402c..cdee19bd55f 100644
--- a/libgcc/config/epiphany/divsi3-float.S
+++ b/libgcc/config/epiphany/divsi3-float.S
@@ -1,5 +1,5 @@
/* Signed 32 bit division optimized for Epiphany.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/divsi3.S b/libgcc/config/epiphany/divsi3.S
index 33258752e5c..04d316f8936 100644
--- a/libgcc/config/epiphany/divsi3.S
+++ b/libgcc/config/epiphany/divsi3.S
@@ -1,5 +1,5 @@
/* Signed 32 bit division optimized for Epiphany.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/divsi3.c b/libgcc/config/epiphany/divsi3.c
index e8046da6168..e4ce9542aae 100644
--- a/libgcc/config/epiphany/divsi3.c
+++ b/libgcc/config/epiphany/divsi3.c
@@ -1,5 +1,5 @@
/* Generic signed 32 bit division implementation.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/epiphany-asm.h b/libgcc/config/epiphany/epiphany-asm.h
index ab40183b1f1..5ad03429367 100644
--- a/libgcc/config/epiphany/epiphany-asm.h
+++ b/libgcc/config/epiphany/epiphany-asm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/ieee-754/eqsf2.S b/libgcc/config/epiphany/ieee-754/eqsf2.S
index ef14311a769..f152711495d 100644
--- a/libgcc/config/epiphany/ieee-754/eqsf2.S
+++ b/libgcc/config/epiphany/ieee-754/eqsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/ieee-754/fast_div.S b/libgcc/config/epiphany/ieee-754/fast_div.S
index 1082993d0ac..98c2d71b446 100644
--- a/libgcc/config/epiphany/ieee-754/fast_div.S
+++ b/libgcc/config/epiphany/ieee-754/fast_div.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/ieee-754/gtesf2.S b/libgcc/config/epiphany/ieee-754/gtesf2.S
index 4e08735abfc..de4cd0d2a2b 100644
--- a/libgcc/config/epiphany/ieee-754/gtesf2.S
+++ b/libgcc/config/epiphany/ieee-754/gtesf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/ieee-754/ordsf2.S b/libgcc/config/epiphany/ieee-754/ordsf2.S
index ddee394414e..cf1340e1ee9 100644
--- a/libgcc/config/epiphany/ieee-754/ordsf2.S
+++ b/libgcc/config/epiphany/ieee-754/ordsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/ieee-754/uneqsf2.S b/libgcc/config/epiphany/ieee-754/uneqsf2.S
index a43c5695e62..96b17705cc1 100644
--- a/libgcc/config/epiphany/ieee-754/uneqsf2.S
+++ b/libgcc/config/epiphany/ieee-754/uneqsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/modsi3-float.S b/libgcc/config/epiphany/modsi3-float.S
index 9f0c1afa384..afd4c44789d 100644
--- a/libgcc/config/epiphany/modsi3-float.S
+++ b/libgcc/config/epiphany/modsi3-float.S
@@ -1,5 +1,5 @@
/* Unsigned 32 bit division optimized for Epiphany.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/modsi3.S b/libgcc/config/epiphany/modsi3.S
index b7e463dcdea..00d8f99749a 100644
--- a/libgcc/config/epiphany/modsi3.S
+++ b/libgcc/config/epiphany/modsi3.S
@@ -1,5 +1,5 @@
/* Signed 32 bit modulo optimized for Epiphany.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/modsi3.c b/libgcc/config/epiphany/modsi3.c
index 4fb39919376..d817ce75b45 100644
--- a/libgcc/config/epiphany/modsi3.c
+++ b/libgcc/config/epiphany/modsi3.c
@@ -1,5 +1,5 @@
/* Generic signed 32 bit modulo implementation.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/mulsi3.c b/libgcc/config/epiphany/mulsi3.c
index 91e4f734cca..a70034b7563 100644
--- a/libgcc/config/epiphany/mulsi3.c
+++ b/libgcc/config/epiphany/mulsi3.c
@@ -1,5 +1,5 @@
/* Generic 32 bit multiply.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/t-epiphany b/libgcc/config/epiphany/t-epiphany
index ef35e4cbd3c..4b8511c3065 100644
--- a/libgcc/config/epiphany/t-epiphany
+++ b/libgcc/config/epiphany/t-epiphany
@@ -1,4 +1,4 @@
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2019 Free Software Foundation, Inc.
# Contributed by Embecosm on behalf of Adapteva, Inc.
#
# This file is part of GCC.
diff --git a/libgcc/config/epiphany/udivsi3-float.S b/libgcc/config/epiphany/udivsi3-float.S
index 7eaf2062b1d..041bbda9f75 100644
--- a/libgcc/config/epiphany/udivsi3-float.S
+++ b/libgcc/config/epiphany/udivsi3-float.S
@@ -1,5 +1,5 @@
/* Unsigned 32 bit division optimized for Epiphany.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/udivsi3-float.c b/libgcc/config/epiphany/udivsi3-float.c
index 1c8b84d3a72..cfa65b5d33e 100644
--- a/libgcc/config/epiphany/udivsi3-float.c
+++ b/libgcc/config/epiphany/udivsi3-float.c
@@ -1,5 +1,5 @@
/* Generic unsigned 32 bit division implementation.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/udivsi3.S b/libgcc/config/epiphany/udivsi3.S
index 8966088ea48..b08a27e7f53 100644
--- a/libgcc/config/epiphany/udivsi3.S
+++ b/libgcc/config/epiphany/udivsi3.S
@@ -1,5 +1,5 @@
/* Unsigned 32 bit division optimized for Epiphany.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/udivsi3.c b/libgcc/config/epiphany/udivsi3.c
index 632e91333ce..e0e0fbab17a 100644
--- a/libgcc/config/epiphany/udivsi3.c
+++ b/libgcc/config/epiphany/udivsi3.c
@@ -1,5 +1,5 @@
/* Generic unsigned 32 bit division implementation.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/umodsi3-float.S b/libgcc/config/epiphany/umodsi3-float.S
index fcb88dcfbea..6998e2637ec 100644
--- a/libgcc/config/epiphany/umodsi3-float.S
+++ b/libgcc/config/epiphany/umodsi3-float.S
@@ -1,5 +1,5 @@
/* Unsigned 32 bit division optimized for Epiphany.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/umodsi3.S b/libgcc/config/epiphany/umodsi3.S
index 8be3cd30379..d6619ed5cd4 100644
--- a/libgcc/config/epiphany/umodsi3.S
+++ b/libgcc/config/epiphany/umodsi3.S
@@ -1,5 +1,5 @@
/* Unsigned 32 bit modulo optimized for Epiphany.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/epiphany/umodsi3.c b/libgcc/config/epiphany/umodsi3.c
index 3a60849a366..8f5004f61b1 100644
--- a/libgcc/config/epiphany/umodsi3.c
+++ b/libgcc/config/epiphany/umodsi3.c
@@ -1,5 +1,5 @@
/* Generic unsigned 32 bit modulo implementation.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/libgcc/config/fr30/crti.S b/libgcc/config/fr30/crti.S
index 76b3b489f16..a43495ff85a 100644
--- a/libgcc/config/fr30/crti.S
+++ b/libgcc/config/fr30/crti.S
@@ -1,6 +1,6 @@
# crti.s for ELF
-# Copyright (C) 1992-2018 Free Software Foundation, Inc.
+# Copyright (C) 1992-2019 Free Software Foundation, Inc.
# Written By David Vinayak Henkel-Wallace, June 1992
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/fr30/crtn.S b/libgcc/config/fr30/crtn.S
index 4a746fd7035..101a0a3be3d 100644
--- a/libgcc/config/fr30/crtn.S
+++ b/libgcc/config/fr30/crtn.S
@@ -1,6 +1,6 @@
# crtn.S for ELF
-# Copyright (C) 1992-2018 Free Software Foundation, Inc.
+# Copyright (C) 1992-2019 Free Software Foundation, Inc.
# Written By David Vinayak Henkel-Wallace, June 1992
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/fr30/lib1funcs.S b/libgcc/config/fr30/lib1funcs.S
index 119123a5e1a..f966d79bd24 100644
--- a/libgcc/config/fr30/lib1funcs.S
+++ b/libgcc/config/fr30/lib1funcs.S
@@ -1,5 +1,5 @@
/* libgcc routines for the FR30.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/frv/cmovd.c b/libgcc/config/frv/cmovd.c
index d78afc68c40..a69a72236f3 100644
--- a/libgcc/config/frv/cmovd.c
+++ b/libgcc/config/frv/cmovd.c
@@ -1,5 +1,5 @@
/* Move double-word library function.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
diff --git a/libgcc/config/frv/cmovh.c b/libgcc/config/frv/cmovh.c
index e35ab348c88..9ddb88e138f 100644
--- a/libgcc/config/frv/cmovh.c
+++ b/libgcc/config/frv/cmovh.c
@@ -1,5 +1,5 @@
/* Move half-word library function.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
diff --git a/libgcc/config/frv/cmovw.c b/libgcc/config/frv/cmovw.c
index 4bbef80318f..6c72c65b148 100644
--- a/libgcc/config/frv/cmovw.c
+++ b/libgcc/config/frv/cmovw.c
@@ -1,5 +1,5 @@
/* Move word library function.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
diff --git a/libgcc/config/frv/elf-lib.h b/libgcc/config/frv/elf-lib.h
index e3e9ba36b04..4543847c32c 100644
--- a/libgcc/config/frv/elf-lib.h
+++ b/libgcc/config/frv/elf-lib.h
@@ -1,5 +1,5 @@
/* Target macros for the FRV port of GCC.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
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
diff --git a/libgcc/config/frv/frv-abi.h b/libgcc/config/frv/frv-abi.h
index 5ad2b4cde40..45ad606e785 100644
--- a/libgcc/config/frv/frv-abi.h
+++ b/libgcc/config/frv/frv-abi.h
@@ -1,5 +1,5 @@
/* Frv map GCC names to FR-V ABI.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
diff --git a/libgcc/config/frv/frvbegin.c b/libgcc/config/frv/frvbegin.c
index 48d0b3dc02a..4f6ca59113f 100644
--- a/libgcc/config/frv/frvbegin.c
+++ b/libgcc/config/frv/frvbegin.c
@@ -1,5 +1,5 @@
/* Frv initialization file linked before all user modules
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
diff --git a/libgcc/config/frv/frvend.c b/libgcc/config/frv/frvend.c
index c00591b0260..bdde590f809 100644
--- a/libgcc/config/frv/frvend.c
+++ b/libgcc/config/frv/frvend.c
@@ -1,5 +1,5 @@
/* Frv initialization file linked after all user modules
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
diff --git a/libgcc/config/frv/lib1funcs.S b/libgcc/config/frv/lib1funcs.S
index 37a073564c7..c0abf9a1dd0 100644
--- a/libgcc/config/frv/lib1funcs.S
+++ b/libgcc/config/frv/lib1funcs.S
@@ -1,5 +1,5 @@
/* Library functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
diff --git a/libgcc/config/frv/libgcc-glibc.ver b/libgcc/config/frv/libgcc-glibc.ver
index 993cb8d4204..f0a4d1eb83a 100644
--- a/libgcc/config/frv/libgcc-glibc.ver
+++ b/libgcc/config/frv/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/ft32/crti.S b/libgcc/config/ft32/crti.S
index 9e3c48480e3..fe510f9f36b 100644
--- a/libgcc/config/ft32/crti.S
+++ b/libgcc/config/ft32/crti.S
@@ -1,6 +1,6 @@
# crti.S for FT32
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/ft32/crtn.S b/libgcc/config/ft32/crtn.S
index 5c5ce92f375..4cf77fc16ea 100644
--- a/libgcc/config/ft32/crtn.S
+++ b/libgcc/config/ft32/crtn.S
@@ -1,6 +1,6 @@
# crtn.S for FT32
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/ft32/lib1funcs.S b/libgcc/config/ft32/lib1funcs.S
index 72b82993b07..590a9274e42 100644
--- a/libgcc/config/ft32/lib1funcs.S
+++ b/libgcc/config/ft32/lib1funcs.S
@@ -1,6 +1,6 @@
# ieee754 sf routines for FT32
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/gcn/crt0.c b/libgcc/config/gcn/crt0.c
new file mode 100644
index 00000000000..9b58029816c
--- /dev/null
+++ b/libgcc/config/gcn/crt0.c
@@ -0,0 +1,79 @@
+/* Copyright (C) 2017-2019 Free Software Foundation, Inc.
+
+ This file 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.
+
+ This file 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/>. */
+
+typedef long long size_t;
+
+/* Provide an entry point symbol to silence a linker warning. */
+void _start() {}
+
+#ifdef USE_NEWLIB_INITFINI
+
+extern void __libc_init_array (void) __attribute__((weak));
+extern void __libc_fini_array (void) __attribute__((weak));
+
+__attribute__((amdgpu_hsa_kernel ()))
+void _init_array()
+{
+ __libc_init_array ();
+}
+
+__attribute__((amdgpu_hsa_kernel ()))
+void _fini_array()
+{
+ __libc_fini_array ();
+}
+
+#endif
+
+/* These magic symbols are provided by the linker. */
+extern void (*__preinit_array_start []) (void) __attribute__((weak));
+extern void (*__preinit_array_end []) (void) __attribute__((weak));
+extern void (*__init_array_start []) (void) __attribute__((weak));
+extern void (*__init_array_end []) (void) __attribute__((weak));
+extern void (*__fini_array_start []) (void) __attribute__((weak));
+extern void (*__fini_array_end []) (void) __attribute__((weak));
+
+__attribute__((amdgpu_hsa_kernel ()))
+void _init_array()
+{
+ /* Iterate over all the init routines. */
+ size_t count;
+ size_t i;
+
+ count = __preinit_array_end - __preinit_array_start;
+ for (i = 0; i < count; i++)
+ __preinit_array_start[i] ();
+
+ count = __init_array_end - __init_array_start;
+ for (i = 0; i < count; i++)
+ __init_array_start[i] ();
+}
+
+__attribute__((amdgpu_hsa_kernel ()))
+void _fini_array()
+{
+ size_t count;
+ size_t i;
+
+ count = __fini_array_end - __fini_array_start;
+ for (i = count; i > 0; i--)
+ __fini_array_start[i-1] ();
+}
diff --git a/libgcc/config/gcn/gthr-gcn.h b/libgcc/config/gcn/gthr-gcn.h
new file mode 100644
index 00000000000..4227b515f01
--- /dev/null
+++ b/libgcc/config/gcn/gthr-gcn.h
@@ -0,0 +1,163 @@
+/* Threads compatibility routines for libgcc2 and libobjc. */
+/* Compile this one with gcc. */
+/* Copyright (C) 2019 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/>. */
+
+/* AMD GCN does not support dynamic creation of threads. There may be many
+ hardware threads, but they're all created simultaneously at launch time.
+
+ This implementation is intended to provide mutexes for libgfortran, etc.
+ It is not intended to provide a TLS implementation at this time,
+ although that may be added later if needed.
+
+ __gthread_active_p returns "1" to ensure that mutexes are used, and that
+ programs attempting to use emutls will fail with the appropriate abort.
+ It is expected that the TLS tests will fail. */
+
+#ifndef GCC_GTHR_GCN_H
+#define GCC_GTHR_GCN_H
+
+#define __GTHREADS 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef _LIBOBJC
+#error "Objective C is not supported on AMD GCN"
+#else
+
+static inline int
+__gthread_active_p (void)
+{
+ return 1;
+}
+
+typedef int __gthread_key_t;
+typedef int __gthread_once_t;
+typedef int __gthread_mutex_t;
+typedef int __gthread_recursive_mutex_t;
+
+#define __GTHREAD_ONCE_INIT 0
+#define __GTHREAD_MUTEX_INIT 0
+#define __GTHREAD_RECURSIVE_MUTEX_INIT 0
+
+static inline int
+__gthread_once (__gthread_once_t *__once __attribute__((unused)),
+ void (*__func) (void) __attribute__((unused)))
+{
+ return 0;
+}
+
+static inline int
+__gthread_key_create (__gthread_key_t *__key __attribute__((unused)),
+ void (*__dtor) (void *) __attribute__((unused)))
+{
+ /* Operation is not supported. */
+ return -1;
+}
+
+static inline int
+__gthread_key_delete (__gthread_key_t __key __attribute__ ((__unused__)))
+{
+ /* Operation is not supported. */
+ return -1;
+}
+
+static inline void *
+__gthread_getspecific (__gthread_key_t __key __attribute__((unused)))
+{
+ return NULL;
+}
+
+static inline int
+__gthread_setspecific (__gthread_key_t __key __attribute__((unused)),
+ const void *__ptr __attribute__((unused)))
+{
+ /* Operation is not supported. */
+ return -1;
+}
+
+static inline int
+__gthread_mutex_destroy (__gthread_mutex_t *__mutex __attribute__((unused)))
+{
+ return 0;
+}
+
+static inline int
+__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex __attribute__((unused)))
+{
+ return 0;
+}
+
+
+static inline int
+__gthread_mutex_lock (__gthread_mutex_t *__mutex)
+{
+ while (__sync_lock_test_and_set (__mutex, 1))
+ asm volatile ("s_sleep\t1" ::: "memory");
+
+ return 0;
+}
+
+static inline int
+__gthread_mutex_trylock (__gthread_mutex_t *__mutex)
+{
+ return __sync_lock_test_and_set (__mutex, 1);
+}
+
+static inline int
+__gthread_mutex_unlock (__gthread_mutex_t *__mutex)
+{
+ __sync_lock_release (__mutex);
+
+ return 0;
+}
+
+static inline int
+__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex __attribute__((unused)))
+{
+ /* Operation is not supported. */
+ return -1;
+}
+
+static inline int
+__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex __attribute__((unused)))
+{
+ /* Operation is not supported. */
+ return -1;
+}
+
+static inline int
+__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex __attribute__((unused)))
+{
+ /* Operation is not supported. */
+ return -1;
+}
+#endif /* _LIBOBJC */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ! GCC_GTHR_GCN_H */
diff --git a/libgcc/config/gcn/lib2-divmod-hi.c b/libgcc/config/gcn/lib2-divmod-hi.c
new file mode 100644
index 00000000000..15ea910ff5f
--- /dev/null
+++ b/libgcc/config/gcn/lib2-divmod-hi.c
@@ -0,0 +1,117 @@
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
+ Contributed by Altera and Mentor Graphics, Inc.
+
+This file 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.
+
+This file 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/>. */
+
+#include "lib2-gcn.h"
+
+/* 16-bit HI divide and modulo as used in gcn. */
+
+static UHItype
+udivmodhi4 (UHItype num, UHItype den, word_type modwanted)
+{
+ UHItype bit = 1;
+ UHItype res = 0;
+
+ while (den < num && bit && !(den & (1L<<15)))
+ {
+ den <<=1;
+ bit <<=1;
+ }
+ while (bit)
+ {
+ if (num >= den)
+ {
+ num -= den;
+ res |= bit;
+ }
+ bit >>=1;
+ den >>=1;
+ }
+ if (modwanted)
+ return num;
+ return res;
+}
+
+
+HItype
+__divhi3 (HItype a, HItype b)
+{
+ word_type neg = 0;
+ HItype res;
+
+ if (a < 0)
+ {
+ a = -a;
+ neg = !neg;
+ }
+
+ if (b < 0)
+ {
+ b = -b;
+ neg = !neg;
+ }
+
+ res = udivmodhi4 (a, b, 0);
+
+ if (neg)
+ res = -res;
+
+ return res;
+}
+
+
+HItype
+__modhi3 (HItype a, HItype b)
+{
+ word_type neg = 0;
+ HItype res;
+
+ if (a < 0)
+ {
+ a = -a;
+ neg = 1;
+ }
+
+ if (b < 0)
+ b = -b;
+
+ res = udivmodhi4 (a, b, 1);
+
+ if (neg)
+ res = -res;
+
+ return res;
+}
+
+
+UHItype
+__udivhi3 (UHItype a, UHItype b)
+{
+ return udivmodhi4 (a, b, 0);
+}
+
+
+UHItype
+__umodhi3 (UHItype a, UHItype b)
+{
+ return udivmodhi4 (a, b, 1);
+}
+
diff --git a/libgcc/config/gcn/lib2-divmod.c b/libgcc/config/gcn/lib2-divmod.c
new file mode 100644
index 00000000000..b5acbeaa9de
--- /dev/null
+++ b/libgcc/config/gcn/lib2-divmod.c
@@ -0,0 +1,117 @@
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
+ Contributed by Altera and Mentor Graphics, Inc.
+
+This file 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.
+
+This file 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/>. */
+
+#include "lib2-gcn.h"
+
+/* 32-bit SI divide and modulo as used in gcn. */
+
+static USItype
+udivmodsi4 (USItype num, USItype den, word_type modwanted)
+{
+ USItype bit = 1;
+ USItype res = 0;
+
+ while (den < num && bit && !(den & (1L<<31)))
+ {
+ den <<=1;
+ bit <<=1;
+ }
+ while (bit)
+ {
+ if (num >= den)
+ {
+ num -= den;
+ res |= bit;
+ }
+ bit >>=1;
+ den >>=1;
+ }
+ if (modwanted)
+ return num;
+ return res;
+}
+
+
+SItype
+__divsi3 (SItype a, SItype b)
+{
+ word_type neg = 0;
+ SItype res;
+
+ if (a < 0)
+ {
+ a = -a;
+ neg = !neg;
+ }
+
+ if (b < 0)
+ {
+ b = -b;
+ neg = !neg;
+ }
+
+ res = udivmodsi4 (a, b, 0);
+
+ if (neg)
+ res = -res;
+
+ return res;
+}
+
+
+SItype
+__modsi3 (SItype a, SItype b)
+{
+ word_type neg = 0;
+ SItype res;
+
+ if (a < 0)
+ {
+ a = -a;
+ neg = 1;
+ }
+
+ if (b < 0)
+ b = -b;
+
+ res = udivmodsi4 (a, b, 1);
+
+ if (neg)
+ res = -res;
+
+ return res;
+}
+
+
+SItype
+__udivsi3 (SItype a, SItype b)
+{
+ return udivmodsi4 (a, b, 0);
+}
+
+
+SItype
+__umodsi3 (SItype a, SItype b)
+{
+ return udivmodsi4 (a, b, 1);
+}
+
diff --git a/libgcc/config/gcn/lib2-gcn.h b/libgcc/config/gcn/lib2-gcn.h
new file mode 100644
index 00000000000..3e965f72402
--- /dev/null
+++ b/libgcc/config/gcn/lib2-gcn.h
@@ -0,0 +1,49 @@
+/* Integer arithmetic support for gcn.
+
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
+ Contributed by Altera and Mentor Graphics, Inc.
+
+ This file 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.
+
+ This file 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/>. */
+
+#ifndef LIB2_GCN_H
+#define LIB2_GCN_H
+
+/* Types. */
+
+typedef char QItype __attribute__ ((mode (QI)));
+typedef unsigned char UQItype __attribute__ ((mode (QI)));
+typedef short HItype __attribute__ ((mode (HI)));
+typedef unsigned short UHItype __attribute__ ((mode (HI)));
+typedef int SItype __attribute__ ((mode (SI)));
+typedef unsigned int USItype __attribute__ ((mode (SI)));
+typedef int word_type __attribute__ ((mode (__word__)));
+
+/* Exported functions. */
+extern SItype __divsi3 (SItype, SItype);
+extern SItype __modsi3 (SItype, SItype);
+extern SItype __udivsi3 (SItype, SItype);
+extern SItype __umodsi3 (SItype, SItype);
+extern HItype __divhi3 (HItype, HItype);
+extern HItype __modhi3 (HItype, HItype);
+extern UHItype __udivhi3 (UHItype, UHItype);
+extern UHItype __umodhi3 (UHItype, UHItype);
+extern SItype __mulsi3 (SItype, SItype);
+
+#endif /* LIB2_GCN_H */
diff --git a/libgcc/config/gcn/sfp-machine.h b/libgcc/config/gcn/sfp-machine.h
new file mode 100644
index 00000000000..7874081fdab
--- /dev/null
+++ b/libgcc/config/gcn/sfp-machine.h
@@ -0,0 +1,51 @@
+/* Use 32-bit types here to prevent longlong.h trying to use TImode.
+ Once TImode works we might be better to use 64-bit here. */
+
+#define _FP_W_TYPE_SIZE 32
+#define _FP_W_TYPE unsigned int
+#define _FP_WS_TYPE signed int
+#define _FP_I_TYPE int
+
+#define _FP_MUL_MEAT_S(R,X,Y) \
+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_D(R,X,Y) \
+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+
+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
+
+#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
+#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
+#define _FP_NANSIGN_S 0
+#define _FP_NANSIGN_D 0
+
+#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
+
+/* Someone please check this. */
+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
+ do { \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
+ { \
+ R##_s = Y##_s; \
+ _FP_FRAC_COPY_##wc(R,Y); \
+ } \
+ else \
+ { \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R,X); \
+ } \
+ R##_c = FP_CLS_NAN; \
+ } while (0)
+
+#define _FP_TININESS_AFTER_ROUNDING 0
+
+#define __LITTLE_ENDIAN 1234
+#define __BIG_ENDIAN 4321
+#define __BYTE_ORDER __LITTLE_ENDIAN
+
+/* Define ALIASNAME as a strong alias for NAME. */
+# define strong_alias(name, aliasname) _strong_alias(name, aliasname)
+# define _strong_alias(name, aliasname) \
+ extern __typeof (name) aliasname __attribute__ ((alias (#name)));
diff --git a/libgcc/config/gcn/t-amdgcn b/libgcc/config/gcn/t-amdgcn
new file mode 100644
index 00000000000..adbd866a1d9
--- /dev/null
+++ b/libgcc/config/gcn/t-amdgcn
@@ -0,0 +1,17 @@
+LIB2ADD += $(srcdir)/config/gcn/lib2-divmod.c \
+ $(srcdir)/config/gcn/lib2-divmod-hi.c \
+ $(srcdir)/config/gcn/unwind-gcn.c
+
+LIB2ADDEH=
+LIB2FUNCS_EXCLUDE=__main
+
+override LIB2FUNCS_ST := $(filter-out __gcc_bcmp,$(LIB2FUNCS_ST))
+
+# Debug information is not useful, and probably uses broken relocations
+LIBGCC2_DEBUG_CFLAGS = -g0
+
+crt0.o: $(srcdir)/config/gcn/crt0.c
+ $(crt_compile) -c $<
+
+# Prevent building "advanced" stuff (for example, gcov support).
+INHIBIT_LIBC_CFLAGS = -Dinhibit_libc
diff --git a/libgcc/config/gcn/unwind-gcn.c b/libgcc/config/gcn/unwind-gcn.c
new file mode 100644
index 00000000000..8aa84d372c3
--- /dev/null
+++ b/libgcc/config/gcn/unwind-gcn.c
@@ -0,0 +1,37 @@
+/* Stub unwinding implementation.
+
+ Copyright (C) 2019 Free Software Foundation, Inc.
+ Contributed by Mentor Graphics
+
+ This file 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.
+
+ This file 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/>. */
+
+#include "unwind.h"
+
+_Unwind_Reason_Code
+_Unwind_Backtrace(_Unwind_Trace_Fn trace, void * trace_argument)
+{
+ return 0;
+}
+
+_Unwind_Ptr
+_Unwind_GetIPInfo (struct _Unwind_Context *c, int *ip_before_insn)
+{
+ return 0;
+}
diff --git a/libgcc/config/gthr-lynx.h b/libgcc/config/gthr-lynx.h
index 1cab565fb14..57128fb9c47 100644
--- a/libgcc/config/gthr-lynx.h
+++ b/libgcc/config/gthr-lynx.h
@@ -1,7 +1,7 @@
/* Threads compatibility routines for libgcc2 and libobjc for
LynxOS. */
/* Compile this one with gcc. */
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/gthr-rtems.h b/libgcc/config/gthr-rtems.h
index 25e04b3b79c..912a0a5c08c 100644
--- a/libgcc/config/gthr-rtems.h
+++ b/libgcc/config/gthr-rtems.h
@@ -1,7 +1,7 @@
/* RTEMS threads compatibility routines for libgcc2 and libobjc.
by: Rosimildo da Silva( rdasilva@connecttel.com ) */
/* Compile this one with gcc. */
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/gthr-vxworks-cond.c b/libgcc/config/gthr-vxworks-cond.c
new file mode 100644
index 00000000000..0747a3daff2
--- /dev/null
+++ b/libgcc/config/gthr-vxworks-cond.c
@@ -0,0 +1,83 @@
+/* Copyright (C) 2002-2019 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/>. */
+
+/* Threads compatibility routines for libgcc2 for VxWorks.
+
+ This file implements the GTHREAD_HAS_COND part of the interface
+ exposed by gthr-vxworks.h. */
+
+#include "gthr.h"
+#include <taskLib.h>
+
+/* --------------------------- Condition Variables ------------------------ */
+
+void
+__gthread_cond_init (__gthread_cond_t *cond)
+{
+ if (!cond)
+ return;
+ *cond = semBCreate (SEM_Q_FIFO, SEM_EMPTY);
+}
+
+int
+__gthread_cond_destroy (__gthread_cond_t *cond)
+{
+ if (!cond)
+ return ERROR;
+ return __CHECK_RESULT (semDelete (*cond));
+}
+
+int
+__gthread_cond_broadcast (__gthread_cond_t *cond)
+{
+ if (!cond)
+ return ERROR;
+
+ return __CHECK_RESULT (semFlush (*cond));
+}
+
+int
+__gthread_cond_wait (__gthread_cond_t *cond,
+ __gthread_mutex_t *mutex)
+{
+ if (!cond)
+ return ERROR;
+
+ if (!mutex)
+ return ERROR;
+
+ __RETURN_ERRNO_IF_NOT_OK (semGive (*mutex));
+
+ __RETURN_ERRNO_IF_NOT_OK (semTake (*cond, WAIT_FOREVER));
+
+ __RETURN_ERRNO_IF_NOT_OK (semTake (*mutex, WAIT_FOREVER));
+
+ return OK;
+}
+
+int
+__gthread_cond_wait_recursive (__gthread_cond_t *cond,
+ __gthread_recursive_mutex_t *mutex)
+{
+ return __gthread_cond_wait (cond, mutex);
+}
diff --git a/libgcc/config/gthr-vxworks-thread.c b/libgcc/config/gthr-vxworks-thread.c
new file mode 100644
index 00000000000..3c880ba1f3f
--- /dev/null
+++ b/libgcc/config/gthr-vxworks-thread.c
@@ -0,0 +1,349 @@
+/* Copyright (C) 2002-2019 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/>. */
+
+/* Threads compatibility routines for libgcc2 for VxWorks.
+
+ This file implements the GTHREAD_CXX0X part of the interface
+ exposed by gthr-vxworks.h, using APIs exposed by regular (!AE/653)
+ VxWorks kernels. */
+
+#include "gthr.h"
+#include <taskLib.h>
+
+#define __TIMESPEC_TO_NSEC(timespec) \
+ ((long long)timespec.tv_sec * 1000000000 + (long long)timespec.tv_nsec)
+
+#define __TIMESPEC_TO_TICKS(timespec) \
+ ((long long)(sysClkRateGet() * __TIMESPEC_TO_NSEC(timespec) + 999999999) \
+ / 1000000000)
+
+#ifdef __RTP__
+ void tls_delete_hook ();
+ #define __CALL_DELETE_HOOK(tcb) tls_delete_hook()
+#else
+ /* In kernel mode, we need to pass the TCB to task_delete_hook. The TCB is
+ the pointer to the WIND_TCB structure and is the ID of the task. */
+ void tls_delete_hook (void *TCB);
+ #define __CALL_DELETE_HOOK(tcb) tls_delete_hook((WIND_TCB *) ((tcb)->task_id))
+#endif
+
+/* -------------------- Timed Condition Variables --------------------- */
+
+int
+__gthread_cond_signal (__gthread_cond_t *cond)
+{
+ if (!cond)
+ return ERROR;
+
+ return __CHECK_RESULT (semGive (*cond));
+}
+
+int
+__gthread_cond_timedwait (__gthread_cond_t *cond,
+ __gthread_mutex_t *mutex,
+ const __gthread_time_t *abs_timeout)
+{
+ if (!cond)
+ return ERROR;
+
+ if (!mutex)
+ return ERROR;
+
+ if (!abs_timeout)
+ return ERROR;
+
+ struct timespec current;
+ if (clock_gettime (CLOCK_REALTIME, &current) == ERROR)
+ /* CLOCK_REALTIME is not supported. */
+ return ERROR;
+
+ const long long abs_timeout_ticks = __TIMESPEC_TO_TICKS ((*abs_timeout));
+ const long long current_ticks = __TIMESPEC_TO_TICKS (current);
+
+ long long waiting_ticks;
+
+ if (current_ticks < abs_timeout_ticks)
+ waiting_ticks = abs_timeout_ticks - current_ticks;
+ else
+ /* The point until we would need to wait is in the past,
+ no need to wait at all. */
+ waiting_ticks = 0;
+
+ /* We check that waiting_ticks can be safely casted as an int. */
+ if (waiting_ticks > INT_MAX)
+ waiting_ticks = INT_MAX;
+
+ __RETURN_ERRNO_IF_NOT_OK (semGive (*mutex));
+
+ __RETURN_ERRNO_IF_NOT_OK (semTake (*cond, waiting_ticks));
+
+ __RETURN_ERRNO_IF_NOT_OK (semTake (*mutex, WAIT_FOREVER));
+
+ return OK;
+}
+
+/* --------------------------- Timed Mutexes ------------------------------ */
+
+int
+__gthread_mutex_timedlock (__gthread_mutex_t *m,
+ const __gthread_time_t *abs_time)
+{
+ if (!m)
+ return ERROR;
+
+ if (!abs_time)
+ return ERROR;
+
+ struct timespec current;
+ if (clock_gettime (CLOCK_REALTIME, &current) == ERROR)
+ /* CLOCK_REALTIME is not supported. */
+ return ERROR;
+
+ const long long abs_timeout_ticks = __TIMESPEC_TO_TICKS ((*abs_time));
+ const long long current_ticks = __TIMESPEC_TO_TICKS (current);
+ long long waiting_ticks;
+
+ if (current_ticks < abs_timeout_ticks)
+ waiting_ticks = abs_timeout_ticks - current_ticks;
+ else
+ /* The point until we would need to wait is in the past,
+ no need to wait at all. */
+ waiting_ticks = 0;
+
+ /* Make sure that waiting_ticks can be safely casted as an int. */
+ if (waiting_ticks > INT_MAX)
+ waiting_ticks = INT_MAX;
+
+ return __CHECK_RESULT (semTake (*m, waiting_ticks));
+}
+
+int
+__gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *mutex,
+ const __gthread_time_t *abs_timeout)
+{
+ return __gthread_mutex_timedlock ((__gthread_mutex_t *)mutex, abs_timeout);
+}
+
+/* ------------------------------ Threads --------------------------------- */
+
+/* Task control block initialization and destruction functions. */
+
+int
+__init_gthread_tcb (__gthread_t __tcb)
+{
+ if (!__tcb)
+ return ERROR;
+
+ __gthread_mutex_init (&(__tcb->return_value_available));
+ if (__tcb->return_value_available == SEM_ID_NULL)
+ return ERROR;
+
+ __gthread_mutex_init (&(__tcb->delete_ok));
+ if (__tcb->delete_ok == SEM_ID_NULL)
+ goto return_sem_delete;
+
+ /* We lock the two mutexes used for signaling. */
+ if (__gthread_mutex_lock (&(__tcb->delete_ok)) != OK)
+ goto delete_sem_delete;
+
+ if (__gthread_mutex_lock (&(__tcb->return_value_available)) != OK)
+ goto delete_sem_delete;
+
+ __tcb->task_id = TASK_ID_NULL;
+ return OK;
+
+delete_sem_delete:
+ semDelete (__tcb->delete_ok);
+return_sem_delete:
+ semDelete (__tcb->return_value_available);
+ return ERROR;
+}
+
+/* Here, we pass a pointer to a tcb to allow calls from
+ cleanup attributes. */
+void
+__delete_gthread_tcb (__gthread_t* __tcb)
+{
+ semDelete ((*__tcb)->return_value_available);
+ semDelete ((*__tcb)->delete_ok);
+ free (*__tcb);
+}
+
+/* This __gthread_t stores the address of the TCB malloc'ed in
+ __gthread_create. It is then accessible via __gthread_self(). */
+__thread __gthread_t __local_tcb = NULL;
+
+__gthread_t
+__gthread_self (void)
+{
+ if (!__local_tcb)
+ {
+ /* We are in the initial thread, we need to initialize the TCB. */
+ __local_tcb = malloc (sizeof (*__local_tcb));
+ if (!__local_tcb)
+ return NULL;
+
+ if (__init_gthread_tcb (__local_tcb) != OK)
+ {
+ __delete_gthread_tcb (&__local_tcb);
+ return NULL;
+ }
+ /* We do not set the mutexes in the structure as a thread is not supposed
+ to join or detach himself. */
+ __local_tcb->task_id = taskIdSelf ();
+ }
+ return __local_tcb;
+}
+
+int
+__task_wrapper (__gthread_t tcb, FUNCPTR __func, _Vx_usr_arg_t __args)
+{
+ if (!tcb)
+ return ERROR;
+
+ __local_tcb = tcb;
+
+ /* We use this variable to avoid memory leaks in the case where
+ the underlying function throws an exception. */
+ __attribute__ ((cleanup (__delete_gthread_tcb))) __gthread_t __tmp = tcb;
+
+ void *return_value = (void *) __func (__args);
+ tcb->return_value = return_value;
+
+ /* Call the destructors. */
+ __CALL_DELETE_HOOK (tcb);
+
+ /* Future calls of join() will be able to retrieve the return value. */
+ __gthread_mutex_unlock (&tcb->return_value_available);
+
+ /* We wait for the thread to be joined or detached. */
+ __gthread_mutex_lock (&(tcb->delete_ok));
+ __gthread_mutex_unlock (&(tcb->delete_ok));
+
+ /* Memory deallocation is done by the cleanup attribute of the tmp variable. */
+
+ return OK;
+}
+
+/* Proper gthreads API. */
+
+int
+__gthread_create (__gthread_t * __threadid, void *(*__func) (void *),
+ void *__args)
+{
+ if (!__threadid)
+ return ERROR;
+
+ int priority;
+ __RETURN_ERRNO_IF_NOT_OK (taskPriorityGet (taskIdSelf (), &priority));
+
+ int options;
+ __RETURN_ERRNO_IF_NOT_OK (taskOptionsGet (taskIdSelf (), &options));
+
+#if defined (__SPE__)
+ options |= VX_SPE_TASK;
+#else
+ options |= VX_FP_TASK;
+#endif
+ options &= VX_USR_TASK_OPTIONS;
+
+ int stacksize = 20 * 1024;
+
+ __gthread_t tcb = malloc (sizeof (*tcb));
+ if (!tcb)
+ return ERROR;
+
+ if (__init_gthread_tcb (tcb) != OK)
+ {
+ free (tcb);
+ return ERROR;
+ }
+
+ TASK_ID task_id = taskCreate (NULL,
+ priority, options, stacksize,
+ (FUNCPTR) & __task_wrapper,
+ (_Vx_usr_arg_t) tcb,
+ (_Vx_usr_arg_t) __func,
+ (_Vx_usr_arg_t) __args,
+ 0, 0, 0, 0, 0, 0, 0);
+
+ /* If taskCreate succeeds, task_id will be a valid TASK_ID and not zero. */
+ __RETURN_ERRNO_IF_NOT_OK (!task_id);
+
+ tcb->task_id = task_id;
+ *__threadid = tcb;
+
+ return __CHECK_RESULT (taskActivate (task_id));
+}
+
+int
+__gthread_equal (__gthread_t __t1, __gthread_t __t2)
+{
+ return (__t1 == __t2) ? OK : ERROR;
+}
+
+int
+__gthread_yield (void)
+{
+ return taskDelay (0);
+}
+
+int
+__gthread_join (__gthread_t __threadid, void **__value_ptr)
+{
+ if (!__threadid)
+ return ERROR;
+
+ /* A thread cannot join itself. */
+ if (__threadid->task_id == taskIdSelf ())
+ return ERROR;
+
+ /* Waiting for the task to set the return value. */
+ __gthread_mutex_lock (&__threadid->return_value_available);
+ __gthread_mutex_unlock (&__threadid->return_value_available);
+
+ if (__value_ptr)
+ *__value_ptr = __threadid->return_value;
+
+ /* The task will be safely be deleted. */
+ __gthread_mutex_unlock (&(__threadid->delete_ok));
+
+ __RETURN_ERRNO_IF_NOT_OK (taskWait (__threadid->task_id, WAIT_FOREVER));
+
+ return OK;
+}
+
+int
+__gthread_detach (__gthread_t __threadid)
+{
+ if (!__threadid)
+ return ERROR;
+
+ if (taskIdVerify (__threadid->task_id) != OK)
+ return ERROR;
+
+ /* The task will be safely be deleted. */
+ __gthread_mutex_unlock (&(__threadid->delete_ok));
+
+ return OK;
+}
diff --git a/libgcc/config/vxlib-tls.c b/libgcc/config/gthr-vxworks-tls.c
index ea975732b1f..cd5f7ac831c 100644
--- a/libgcc/config/vxlib-tls.c
+++ b/libgcc/config/gthr-vxworks-tls.c
@@ -23,21 +23,17 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
/* Threads compatibility routines for libgcc2 for VxWorks.
- These are out-of-line routines called from gthr-vxworks.h.
+ These are out-of-line routines called from gthr-vxworks.h.
This file provides the TLS related support routines, calling specific
- VxWorks kernel entry points for this purpose. The base VxWorks 5.x kernels
- don't feature these entry points, and we provide gthr_supp_vxw_5x.c as an
- option to fill this gap. Asking users to rebuild a kernel is not to be
- taken lightly, still, so we have isolated these routines from the rest of
- vxlib to ensure that the kernel dependencies are only dragged when really
- necessary. */
+ VxWorks kernel entry points for this purpose. */
#include "tconfig.h"
#include "tsystem.h"
#include "gthr.h"
#if defined(__GTHREADS)
+
#include <vxWorks.h>
#ifndef __RTP__
#include <vxLib.h>
@@ -46,27 +42,27 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#ifndef __RTP__
#include <taskHookLib.h>
#else
-# include <errno.h>
+#include <errno.h>
#endif
/* Thread-local storage.
- We reserve a field in the TCB to point to a dynamically allocated
- array which is used to store TLS values. A TLS key is simply an
- offset in this array. The exact location of the TCB field is not
- known to this code nor to vxlib.c -- all access to it indirects
- through the routines __gthread_get_tls_data and
- __gthread_set_tls_data, which are provided by the VxWorks kernel.
+ A gthread TLS key is simply an offset in an array, the address of which
+ we store in a single pointer field associated with the current task.
+
+ On VxWorks 7, we have direct support for __thread variables and use
+ such a variable as the pointer "field". On other versions, we resort
+ to __gthread_get_tls_data and __gthread_set_tls_data functions provided
+ by the kernel.
There is also a global array which records which keys are valid and
which have destructors.
- A task delete hook is installed to execute key destructors. The
- routines __gthread_enter_tls_dtor_context and
- __gthread_leave_tls_dtor_context, which are also provided by the
- kernel, ensure that it is safe to call free() on memory allocated
- by the task being deleted. (This is a no-op on VxWorks 5, but
- a major undertaking on AE.)
+ A task delete hook is installed to execute key destructors. The routines
+ __gthread_enter_tls_dtor_context and __gthread_leave_tls_dtor_context,
+ which are also provided by the kernel, ensure that it is safe to call
+ free() on memory allocated by the task being deleted. This is a no-op on
+ VxWorks 5, but a major undertaking on AE.
The task delete hook is only installed when at least one thread
has TLS data. This is a necessary precaution, to allow this module
@@ -95,21 +91,34 @@ static int self_owner;
it is only removed when unloading this module. */
static volatile int delete_hook_installed;
-/* kernel provided routines */
+/* TLS data access internal API. A straight __thread variable on VxWorks 7,
+ a pointer returned by kernel provided routines otherwise. */
+
+#ifdef __VXWORKS7__
+
+static __thread struct tls_data *__gthread_tls_data;
+
+#define VX_GET_TLS_DATA() __gthread_tls_data
+#define VX_SET_TLS_DATA(x) __gthread_tls_data = (x)
+
+#define VX_ENTER_TLS_DTOR()
+#define VX_LEAVE_TLS_DTOR()
+
+#else
+
extern void *__gthread_get_tls_data (void);
extern void __gthread_set_tls_data (void *data);
extern void __gthread_enter_tls_dtor_context (void);
extern void __gthread_leave_tls_dtor_context (void);
-#ifndef __RTP__
+#define VX_GET_TLS_DATA() __gthread_get_tls_data()
+#define VX_SET_TLS_DATA(x) __gthread_set_tls_data(x)
-extern void *__gthread_get_tsd_data (WIND_TCB *tcb);
-extern void __gthread_set_tsd_data (WIND_TCB *tcb, void *data);
-extern void __gthread_enter_tsd_dtor_context (WIND_TCB *tcb);
-extern void __gthread_leave_tsd_dtor_context (WIND_TCB *tcb);
+#define VX_ENTER_TLS_DTOR() __gthread_enter_tls_dtor_context ()
+#define VX_LEAVE_TLS_DTOR() __gthread_leave_tls_dtor_context ()
-#endif /* __RTP__ */
+#endif /* __VXWORKS7__ */
/* This is a global structure which records all of the active keys.
@@ -138,7 +147,7 @@ struct tls_keys
key is valid. */
static struct tls_keys tls_keys =
{
- { 0, 0, 0, 0 },
+ { NULL, NULL, NULL, NULL },
{ 1, 1, 1, 1 }
};
@@ -157,28 +166,17 @@ static __gthread_once_t tls_init_guard = __GTHREAD_ONCE_INIT;
count protects us from calling a stale destructor. It does
need to read tls_keys.dtor[key] atomically. */
-static void
+void
tls_delete_hook (void *tcb ATTRIBUTE_UNUSED)
{
struct tls_data *data;
__gthread_key_t key;
-#ifdef __RTP__
- data = __gthread_get_tls_data ();
-#else
- /* In kernel mode, we can be called in the context of the thread
- doing the killing, so must use the TCB to determine the data of
- the thread being killed. */
- data = __gthread_get_tsd_data (tcb);
-#endif
-
+ data = VX_GET_TLS_DATA();
+
if (data && data->owner == &self_owner)
{
-#ifdef __RTP__
- __gthread_enter_tls_dtor_context ();
-#else
- __gthread_enter_tsd_dtor_context (tcb);
-#endif
+ VX_ENTER_TLS_DTOR();
for (key = 0; key < MAX_KEYS; key++)
{
if (data->generation[key] == tls_keys.generation[key])
@@ -190,19 +188,11 @@ tls_delete_hook (void *tcb ATTRIBUTE_UNUSED)
}
}
free (data);
-#ifdef __RTP__
- __gthread_leave_tls_dtor_context ();
-#else
- __gthread_leave_tsd_dtor_context (tcb);
-#endif
-#ifdef __RTP__
- __gthread_set_tls_data (0);
-#else
- __gthread_set_tsd_data (tcb, 0);
-#endif
+ VX_LEAVE_TLS_DTOR();
+ VX_SET_TLS_DATA(NULL);
}
-}
+}
/* Initialize global data used by the TLS system. */
static void
@@ -303,7 +293,7 @@ __gthread_getspecific (__gthread_key_t key)
if (key >= MAX_KEYS)
return 0;
- data = __gthread_get_tls_data ();
+ data = GET_VX_TLS_DATA();
if (!data)
return 0;
@@ -332,7 +322,8 @@ __gthread_setspecific (__gthread_key_t key, void *value)
if (key >= MAX_KEYS)
return EINVAL;
- data = __gthread_get_tls_data ();
+ data = VX_GET_TLS_DATA();
+
if (!data)
{
if (!delete_hook_installed)
@@ -354,7 +345,8 @@ __gthread_setspecific (__gthread_key_t key, void *value)
memset (data, 0, sizeof (struct tls_data));
data->owner = &self_owner;
- __gthread_set_tls_data (data);
+
+ VX_SET_TLS_DATA(data);
}
generation = tls_keys.generation[key];
diff --git a/libgcc/config/gthr-vxworks.c b/libgcc/config/gthr-vxworks.c
new file mode 100644
index 00000000000..ddc35933d1a
--- /dev/null
+++ b/libgcc/config/gthr-vxworks.c
@@ -0,0 +1,87 @@
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
+ Contributed by Zack Weinberg <zack@codesourcery.com>
+
+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/>. */
+
+/* Threads compatibility routines for libgcc2 for VxWorks.
+
+ This file implements the init-once service exposed by gthr-vxworks.h. */
+
+#include "tconfig.h"
+#include "tsystem.h"
+#include "gthr.h"
+
+#if defined(__GTHREADS)
+
+#include <vxWorks.h>
+
+#ifndef __RTP__
+# include <vxLib.h>
+# include <taskHookLib.h>
+#else /* __RTP__ */
+# include <errno.h>
+#endif /* __RTP__ */
+
+/* ----------------------------- Init-once ------------------------------- */
+
+static void
+__release (__gthread_once_t ** __guard)
+{
+ (*__guard)->busy = 0;
+}
+
+int
+__gthread_once (__gthread_once_t * __guard, void (*__func) (void))
+{
+ if (__guard->done)
+ return 0;
+
+ /* Busy-wait until we have exclusive access to the state. Check if
+ another thread managed to perform the init call in the interim. */
+
+ while (!__TAS(&__guard->busy))
+ {
+ if (__guard->done)
+ return 0;
+ taskDelay (1);
+ }
+
+ if (!__guard->done)
+ {
+#ifndef __USING_SJLJ_EXCEPTIONS__
+ /* Setup a cleanup to release the guard when __func() throws an
+ exception. We cannot use this with SJLJ exceptions as
+ Unwind_Register calls __gthread_once, leading to an infinite
+ recursion. */
+ __attribute__ ((cleanup (__release)))
+ __gthread_once_t *__temp = __guard;
+#endif
+
+ __func ();
+ __guard->done = 1;
+ }
+
+ __release(&__guard);
+ return 0;
+}
+
+#endif /* __GTHREADS */
diff --git a/libgcc/config/gthr-vxworks.h b/libgcc/config/gthr-vxworks.h
index e43253b01c7..7e3779a010a 100644
--- a/libgcc/config/gthr-vxworks.h
+++ b/libgcc/config/gthr-vxworks.h
@@ -33,138 +33,295 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "gthr-posix.h"
#else
-#ifdef __cplusplus
-#define UNUSED(x)
-#else
-#define UNUSED(x) x __attribute__((__unused__))
+
+#include <vxWorks.h>
+#include <version.h>
+
+/* Conditional compilation directives are easier to read when they fit on a
+ single line, which is helped by macros with shorter names. */
+#define _VXW_MAJOR _WRS_VXWORKS_MAJOR
+#define _VXW_MINOR _WRS_VXWORKS_MINOR
+#define _VXW_PRE_69 (_VXW_MAJOR < 6 || (_VXW_MAJOR == 6 && _VXW_MINOR < 9))
+
+/* Some VxWorks headers profusely use typedefs of a pointer to a function with
+ undefined number of arguments. */
+#pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-prototypes"
+ #include <semLib.h>
+#pragma GCC diagnostic pop
+
+#include <errnoLib.h>
+
+
+/* --------------------- Test & Set/Swap internal API --------------------- */
+
+/* We use a bare atomic primitive with busy loops to handle mutual exclusion.
+ Inefficient, but reliable. The actual primitive used depends on the mode
+ (RTP vs Kernel) and the version of VxWorks. We define a macro and a type
+ here, for reuse without conditionals cluttering in the code afterwards. */
+
+/* RTP, pre 6.9. */
+
+#if defined(__RTP__) && _VXW_PRE_69
+
+#define __TAS(x) vxCas ((x), 0, 1)
+typedef volatile unsigned char __vx_tas_t;
+
+#endif
+
+/* RTP, 6.9 and beyond. */
+
+#if defined(__RTP__) && !_VXW_PRE_69
+
+#define __TAS(x) vxAtomicCas ((x), 0, 1)
+typedef atomic_t __vx_tas_t;
+
+#include <vxAtomicLib.h>
+
+#endif
+
+/* Kernel */
+
+#if !defined(__RTP__)
+
+#define __TAS(x) vxTas (x)
+typedef volatile unsigned char __vx_tas_t;
+
#endif
#ifdef __cplusplus
extern "C" {
#endif
+/* ------------------------ Base __GTHREADS support ----------------------- */
+
#define __GTHREADS 1
#define __gthread_active_p() 1
/* Mutexes are easy, except that they need to be initialized at runtime. */
-#include <semLib.h>
-
-typedef SEM_ID __gthread_mutex_t;
/* All VxWorks mutexes are recursive. */
+typedef SEM_ID __gthread_mutex_t;
typedef SEM_ID __gthread_recursive_mutex_t;
-#define __GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function
-#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION __gthread_recursive_mutex_init_function
+#define __GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init
+#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION __gthread_recursive_mutex_init
+
+#define __CHECK_RESULT(result) (((result) == OK) ? OK : errnoGet())
+
+/* If a call to the VxWorks API fails, we must propagate the errno value. */
+#define __RETURN_ERRNO_IF_NOT_OK(exp) if ((exp) != OK) return errnoGet()
+
+/* Non re-entrant mutex implementation. Libstdc++ expects the default
+ gthread mutex to be non reentrant. */
static inline void
-__gthread_mutex_init_function (__gthread_mutex_t *mutex)
+__gthread_mutex_init (__gthread_mutex_t * __mutex)
{
- *mutex = semMCreate (SEM_Q_PRIORITY | SEM_INVERSION_SAFE | SEM_DELETE_SAFE);
+ if (!__mutex)
+ return;
+ *__mutex = semBCreate (SEM_Q_PRIORITY, SEM_FULL);
}
static inline int
-__gthread_mutex_destroy (__gthread_mutex_t * UNUSED(mutex))
+__gthread_mutex_destroy (__gthread_mutex_t * __mutex)
{
- return 0;
+ if (!__mutex)
+ return ERROR;
+ return __CHECK_RESULT (semDelete (*__mutex));
}
static inline int
-__gthread_mutex_lock (__gthread_mutex_t *mutex)
+__gthread_mutex_lock (__gthread_mutex_t * __mutex)
{
- return semTake (*mutex, WAIT_FOREVER);
+ if (!__mutex)
+ return ERROR;
+ return __CHECK_RESULT (semTake(*__mutex, WAIT_FOREVER));
}
static inline int
-__gthread_mutex_trylock (__gthread_mutex_t *mutex)
+__gthread_mutex_trylock (__gthread_mutex_t * __mutex)
{
- return semTake (*mutex, NO_WAIT);
+ if (!__mutex)
+ return ERROR;
+ return __CHECK_RESULT (semTake (*__mutex, NO_WAIT));
}
static inline int
-__gthread_mutex_unlock (__gthread_mutex_t *mutex)
+__gthread_mutex_unlock (__gthread_mutex_t * __mutex)
{
- return semGive (*mutex);
+ if (!__mutex)
+ return ERROR;
+ return __CHECK_RESULT (semGive (*__mutex));
}
+/* Recursive mutex implementation. The only change is that we use semMCreate()
+ instead of semBCreate(). */
+
static inline void
-__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *mutex)
+__gthread_recursive_mutex_init (__gthread_recursive_mutex_t * __mutex)
{
- __gthread_mutex_init_function (mutex);
+ if (!__mutex)
+ return;
+ *__mutex =
+ semMCreate (SEM_Q_PRIORITY | SEM_INVERSION_SAFE | SEM_DELETE_SAFE);
}
static inline int
-__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
+__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t * __mutex)
{
- return __gthread_mutex_lock (mutex);
+ return __gthread_mutex_destroy (__mutex);
}
static inline int
-__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
+__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t * __mutex)
{
- return __gthread_mutex_trylock (mutex);
+ return __gthread_mutex_lock (__mutex);
}
static inline int
-__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
+__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t * __mutex)
{
- return __gthread_mutex_unlock (mutex);
+ return __gthread_mutex_trylock (__mutex);
}
static inline int
-__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
+__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t * __mutex)
{
- return __gthread_mutex_destroy (__mutex);
+ return __gthread_mutex_unlock (__mutex);
}
-/* pthread_once is complicated enough that it's implemented
- out-of-line. See config/vxlib.c. */
-
typedef struct
{
-#if !defined(__RTP__)
+ /* PPC's test-and-set kernel mode implementation requires a pointer aligned
+ object, of which it only sets the first byte. We use padding in addition
+ to an alignment request here to maxmise the factors leading to the
+ desired actual alignment choice by the compiler. */
#if defined(__PPC__)
- __attribute ((aligned (__alignof (unsigned))))
-#endif
- volatile unsigned char busy;
+ __attribute ((aligned (__alignof__ (void *))))
#endif
+
+ __vx_tas_t busy;
volatile unsigned char done;
+
#if !defined(__RTP__) && defined(__PPC__)
- /* PPC's test-and-set implementation requires a 4 byte aligned
- object, of which it only sets the first byte. We use padding
- here, in order to maintain some amount of backwards
- compatibility. Without this padding, gthread_once objects worked
- by accident because they happen to be static objects and the ppc
- port automatically increased their alignment to 4 bytes. */
unsigned char pad1;
unsigned char pad2;
#endif
-}
-__gthread_once_t;
-
-#if defined (__RTP__)
-# define __GTHREAD_ONCE_INIT { 0 }
-#elif defined (__PPC__)
-# define __GTHREAD_ONCE_INIT { 0, 0, 0, 0 }
-#else
-# define __GTHREAD_ONCE_INIT { 0, 0 }
+#if !defined(__RTP__) && defined(__PPC64__)
+ unsigned char pad3;
+ unsigned char pad4;
+ unsigned char pad5;
+ unsigned char pad6;
#endif
+} __gthread_once_t;
+
+#define __GTHREAD_ONCE_INIT { 0 }
extern int __gthread_once (__gthread_once_t *__once, void (*__func)(void));
-/* Thread-specific data requires a great deal of effort, since VxWorks
- is not really set up for it. See config/vxlib.c for the gory
- details. All the TSD routines are sufficiently complex that they
+/* All the TSD routines are sufficiently complex that they
need to be implemented out of line. */
typedef unsigned int __gthread_key_t;
-extern int __gthread_key_create (__gthread_key_t *__keyp, void (*__dtor)(void *));
+extern int __gthread_key_create (__gthread_key_t *__keyp,
+ void (*__dtor)(void *));
extern int __gthread_key_delete (__gthread_key_t __key);
extern void *__gthread_getspecific (__gthread_key_t __key);
extern int __gthread_setspecific (__gthread_key_t __key, void *__ptr);
-#undef UNUSED
+/* ------------------ Base condition variables support ------------------- */
+
+#define __GTHREAD_HAS_COND 1
+
+typedef SEM_ID __gthread_cond_t;
+
+#define __GTHREAD_COND_INIT_FUNCTION __gthread_cond_init
+
+/* Condition variable declarations. */
+
+extern void __gthread_cond_init (__gthread_cond_t *cond);
+
+extern int __gthread_cond_destroy (__gthread_cond_t *cond);
+
+extern int __gthread_cond_broadcast (__gthread_cond_t *cond);
+
+extern int __gthread_cond_wait (__gthread_cond_t *cond,
+ __gthread_mutex_t *mutex);
+
+extern int __gthread_cond_wait_recursive (__gthread_cond_t *cond,
+ __gthread_recursive_mutex_t *mutex);
+
+/* ----------------------- C++0x thread support ------------------------- */
+
+/* We do not support C++0x threads on that VxWorks 653, which we can
+ recognize by VTHREADS being defined. */
+
+#ifndef VTHREADS
+
+#define __GTHREADS_CXX0X 1
+
+#include <limits.h>
+#include <time.h>
+#include <tickLib.h>
+#include <sysLib.h>
+#include <version.h>
+
+typedef struct
+{
+ TASK_ID task_id;
+ void *return_value;
+
+ /* This mutex is used to block in join() while the return value is
+ unavailable. */
+ __gthread_mutex_t return_value_available;
+
+ /* Before freeing the structure in the task wrapper, we need to wait until
+ join() or detach() are called on that thread. */
+ __gthread_mutex_t delete_ok;
+} __gthread_tcb;
+
+typedef __gthread_tcb *__gthread_t;
+
+/* Typedefs specific to different vxworks versions. */
+#if _VXW_PRE_69
+ typedef int _Vx_usr_arg_t;
+ #define TASK_ID_NULL ((TASK_ID)NULL)
+ #define SEM_ID_NULL ((SEM_ID)NULL)
+#endif
+
+typedef struct timespec __gthread_time_t;
+
+/* Timed mutex lock declarations. */
+
+extern int __gthread_mutex_timedlock (__gthread_mutex_t *m,
+ const __gthread_time_t *abs_time);
+
+extern int __gthread_recursive_mutex_timedlock
+ (__gthread_recursive_mutex_t *mutex,
+ const __gthread_time_t *abs_timeout);
+
+/* Timed condition variable declarations. */
+
+extern int __gthread_cond_signal (__gthread_cond_t *cond);
+extern int __gthread_cond_timedwait (__gthread_cond_t *cond,
+ __gthread_mutex_t *mutex,
+ const __gthread_time_t *abs_timeout);
+
+/* gthreads declarations. */
+
+extern int __gthread_equal (__gthread_t t1, __gthread_t t2);
+extern int __gthread_yield (void);
+extern int __gthread_create (__gthread_t *__threadid,
+ void *(*__func) (void*),
+ void *__args);
+extern int __gthread_join (__gthread_t thread, void **value_ptr);
+extern int __gthread_detach (__gthread_t thread);
+
+extern __gthread_t __gthread_self (void);
+
+#endif
#ifdef __cplusplus
}
diff --git a/libgcc/config/h8300/clzhi2.c b/libgcc/config/h8300/clzhi2.c
index 14892e1aa5c..dcbec0f156b 100644
--- a/libgcc/config/h8300/clzhi2.c
+++ b/libgcc/config/h8300/clzhi2.c
@@ -1,5 +1,5 @@
/* The implementation of __clzhi2.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/h8300/crti.S b/libgcc/config/h8300/crti.S
index 531e863b038..0ffb66e7996 100644
--- a/libgcc/config/h8300/crti.S
+++ b/libgcc/config/h8300/crti.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/h8300/crtn.S b/libgcc/config/h8300/crtn.S
index b7e619ac9fb..0fa6a59fff4 100644
--- a/libgcc/config/h8300/crtn.S
+++ b/libgcc/config/h8300/crtn.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file was adapted from glibc sources.
This file is part of GCC.
diff --git a/libgcc/config/h8300/ctzhi2.c b/libgcc/config/h8300/ctzhi2.c
index 413fabeb9f9..0c47accf420 100644
--- a/libgcc/config/h8300/ctzhi2.c
+++ b/libgcc/config/h8300/ctzhi2.c
@@ -1,5 +1,5 @@
/* The implementation of __ctzhi2.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/h8300/fixunssfsi.c b/libgcc/config/h8300/fixunssfsi.c
index ee71d5cff4b..05cb0aae465 100644
--- a/libgcc/config/h8300/fixunssfsi.c
+++ b/libgcc/config/h8300/fixunssfsi.c
@@ -1,6 +1,6 @@
/* More subroutines needed by GCC output code on some machines. */
/* Compile this one with gcc. */
-/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/h8300/lib1funcs.S b/libgcc/config/h8300/lib1funcs.S
index 167f2280487..af2924c9447 100644
--- a/libgcc/config/h8300/lib1funcs.S
+++ b/libgcc/config/h8300/lib1funcs.S
@@ -2,7 +2,7 @@
;; Contributed by Steve Chamberlain <sac@cygnus.com>
;; Optimizations by Toshiyasu Morita <toshiyasu.morita@renesas.com>
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/h8300/parityhi2.c b/libgcc/config/h8300/parityhi2.c
index d3513719323..d021e1d2eb3 100644
--- a/libgcc/config/h8300/parityhi2.c
+++ b/libgcc/config/h8300/parityhi2.c
@@ -1,5 +1,5 @@
/* The implementation of __parityhi2.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/h8300/popcounthi2.c b/libgcc/config/h8300/popcounthi2.c
index c4a0e2834a1..f2056723654 100644
--- a/libgcc/config/h8300/popcounthi2.c
+++ b/libgcc/config/h8300/popcounthi2.c
@@ -1,5 +1,5 @@
/* The implementation of __popcounthi2.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/h8300/sfp-machine.h b/libgcc/config/h8300/sfp-machine.h
index 1f763718b35..3eda4d34c4c 100644
--- a/libgcc/config/h8300/sfp-machine.h
+++ b/libgcc/config/h8300/sfp-machine.h
@@ -1,5 +1,5 @@
/* Soft-FP definitions for H8/300
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/hardfp.c b/libgcc/config/hardfp.c
index cba844b90e3..8a931768116 100644
--- a/libgcc/config/hardfp.c
+++ b/libgcc/config/hardfp.c
@@ -1,5 +1,5 @@
/* Dummy floating-point routines for hard-float code.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/i386/32/tf-signs.c b/libgcc/config/i386/32/tf-signs.c
index a73d3d82a06..aa42a6194d4 100644
--- a/libgcc/config/i386/32/tf-signs.c
+++ b/libgcc/config/i386/32/tf-signs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
index a7bb9dac151..5659ec89546 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
@@ -1,5 +1,5 @@
/* Get CPU type and Features for x86 processors.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Sriraman Tallam (tmsriram@google.com)
This file is part of GCC.
@@ -108,6 +108,8 @@ get_amd_cpu (unsigned int family, unsigned int model)
/* AMD family 17h version 1. */
if (model <= 0x1f)
__cpu_model.__cpu_subtype = AMDFAM17H_ZNVER1;
+ if (model >= 0x30)
+ __cpu_model.__cpu_subtype = AMDFAM17H_ZNVER2;
break;
default:
break;
@@ -213,9 +215,17 @@ get_intel_cpu (unsigned int family, unsigned int model, unsigned int brand_id)
__cpu_model.__cpu_subtype = INTEL_COREI7_SKYLAKE;
break;
case 0x55:
- /* Skylake with AVX-512 support. */
- __cpu_model.__cpu_type = INTEL_COREI7;
- __cpu_model.__cpu_subtype = INTEL_COREI7_SKYLAKE_AVX512;
+ {
+ unsigned int eax, ebx, ecx, edx;
+ __cpu_model.__cpu_type = INTEL_COREI7;
+ __cpuid_count (7, 0, eax, ebx, ecx, edx);
+ if (ecx & bit_AVX512VNNI)
+ /* Cascade Lake. */
+ __cpu_model.__cpu_subtype = INTEL_COREI7_CASCADELAKE;
+ else
+ /* Skylake with AVX-512 support. */
+ __cpu_model.__cpu_subtype = INTEL_COREI7_SKYLAKE_AVX512;
+ }
break;
case 0x66:
/* Cannon Lake. */
@@ -326,7 +336,7 @@ get_available_features (unsigned int ecx, unsigned int edx,
set_feature (FEATURE_FMA);
}
- /* Get Advanced Features at level 7 (eax = 7, ecx = 0). */
+ /* Get Advanced Features at level 7 (eax = 7, ecx = 0/1). */
if (max_cpuid_level >= 7)
{
__cpuid_count (7, 0, eax, ebx, ecx, edx);
@@ -375,6 +385,10 @@ get_available_features (unsigned int ecx, unsigned int edx,
set_feature (FEATURE_AVX5124VNNIW);
if (edx & bit_AVX5124FMAPS)
set_feature (FEATURE_AVX5124FMAPS);
+
+ __cpuid_count (7, 1, eax, ebx, ecx, edx);
+ if (eax & bit_AVX512BF16)
+ set_feature (FEATURE_AVX512BF16);
}
}
diff --git a/libgcc/config/i386/cpuinfo.h b/libgcc/config/i386/cpuinfo.h
index 0aa887b7482..67209d5ba4f 100644
--- a/libgcc/config/i386/cpuinfo.h
+++ b/libgcc/config/i386/cpuinfo.h
@@ -1,5 +1,5 @@
/* Get CPU type and Features for x86 processors.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Sriraman Tallam (tmsriram@google.com)
This file is part of GCC.
@@ -75,6 +75,10 @@ enum processor_subtypes
INTEL_COREI7_CANNONLAKE,
INTEL_COREI7_ICELAKE_CLIENT,
INTEL_COREI7_ICELAKE_SERVER,
+ AMDFAM17H_ZNVER2,
+ INTEL_COREI7_CASCADELAKE,
+ INTEL_COREI7_TIGERLAKE,
+ INTEL_COREI7_COOPERLAKE,
CPU_SUBTYPE_MAX
};
@@ -117,7 +121,8 @@ enum processor_features
FEATURE_GFNI,
FEATURE_VPCLMULQDQ,
FEATURE_AVX512VNNI,
- FEATURE_AVX512BITALG
+ FEATURE_AVX512BITALG,
+ FEATURE_AVX512BF16
};
extern struct __processor_model
diff --git a/libgcc/config/i386/crtfastmath.c b/libgcc/config/i386/crtfastmath.c
index d13d3b2ddea..8684c3d4037 100644
--- a/libgcc/config/i386/crtfastmath.c
+++ b/libgcc/config/i386/crtfastmath.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2005-2019 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/i386/crti.S b/libgcc/config/i386/crti.S
index c25e8f9e3ab..6a7d192198a 100644
--- a/libgcc/config/i386/crti.S
+++ b/libgcc/config/i386/crti.S
@@ -1,6 +1,6 @@
/* crti.S for x86.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-2019 Free Software Foundation, Inc.
Written By Fred Fish, Nov 1992
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/i386/crtn.S b/libgcc/config/i386/crtn.S
index ec24e7171de..a1303ca828c 100644
--- a/libgcc/config/i386/crtn.S
+++ b/libgcc/config/i386/crtn.S
@@ -1,6 +1,6 @@
/* crtn.S for x86.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-2019 Free Software Foundation, Inc.
Written By Fred Fish, Nov 1992
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/i386/crtprec.c b/libgcc/config/i386/crtprec.c
index a3977994b1a..8cd13c76eb4 100644
--- a/libgcc/config/i386/crtprec.c
+++ b/libgcc/config/i386/crtprec.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2007-2019 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -39,7 +39,7 @@ set_precision (void)
{
unsigned short int cwd;
- asm volatile ("fstcw\t%0" : "=m" (cwd));
+ asm volatile ("fnstcw\t%0" : "=m" (cwd));
cwd &= ~X87CW_PCMASK;
cwd |= X87CW;
diff --git a/libgcc/config/i386/cygming-crtbegin.c b/libgcc/config/i386/cygming-crtbegin.c
index d953f0b69f7..d970aa501c9 100644
--- a/libgcc/config/i386/cygming-crtbegin.c
+++ b/libgcc/config/i386/cygming-crtbegin.c
@@ -1,5 +1,5 @@
/* crtbegin object for windows32 targets.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
Contributed by Danny Smith <dannysmith@users.sourceforge.net>
diff --git a/libgcc/config/i386/cygming-crtend.c b/libgcc/config/i386/cygming-crtend.c
index bc73f339863..4e92b7d408f 100644
--- a/libgcc/config/i386/cygming-crtend.c
+++ b/libgcc/config/i386/cygming-crtend.c
@@ -1,5 +1,5 @@
/* crtend object for windows32 targets.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
Contributed by Danny Smith <dannysmith@users.sourceforge.net>
diff --git a/libgcc/config/i386/cygwin.S b/libgcc/config/i386/cygwin.S
index ece17f82a68..2452208d8b3 100644
--- a/libgcc/config/i386/cygwin.S
+++ b/libgcc/config/i386/cygwin.S
@@ -1,6 +1,6 @@
/* stuff needed for libgcc on win32.
*
- * Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1996-2019 Free Software Foundation, Inc.
* Written By Steve Chamberlain
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/i386/darwin-lib.h b/libgcc/config/i386/darwin-lib.h
index e627fcafab0..b92a802a809 100644
--- a/libgcc/config/i386/darwin-lib.h
+++ b/libgcc/config/i386/darwin-lib.h
@@ -1,5 +1,5 @@
/* Target definitions for x86 running Darwin, library renames.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/i386/dragonfly-unwind.h b/libgcc/config/i386/dragonfly-unwind.h
index 21808aa42f1..d19c4bcc354 100644
--- a/libgcc/config/i386/dragonfly-unwind.h
+++ b/libgcc/config/i386/dragonfly-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for DragonFly BSD: AMD x86-64 and x86.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
Contributed by John Marino <gnugcc@marino.st>
This file is part of GCC.
diff --git a/libgcc/config/i386/elf-lib.h b/libgcc/config/i386/elf-lib.h
index 310f21f0a94..da0a6930145 100644
--- a/libgcc/config/i386/elf-lib.h
+++ b/libgcc/config/i386/elf-lib.h
@@ -1,5 +1,5 @@
/* Definitions for Intel 386 ELF systems.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
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
diff --git a/libgcc/config/i386/enable-execute-stack-mingw32.c b/libgcc/config/i386/enable-execute-stack-mingw32.c
index 96da4bd7f24..bb2cf55ed01 100644
--- a/libgcc/config/i386/enable-execute-stack-mingw32.c
+++ b/libgcc/config/i386/enable-execute-stack-mingw32.c
@@ -1,5 +1,5 @@
/* Implement __enable_execute_stack for Windows32.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/i386/freebsd-unwind.h b/libgcc/config/i386/freebsd-unwind.h
index ec4ca6c7c42..2e8664973c1 100644
--- a/libgcc/config/i386/freebsd-unwind.h
+++ b/libgcc/config/i386/freebsd-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for FreeBSD: AMD x86-64 and x86.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
Contributed by John Marino <gnugcc@marino.st>
This file is part of GCC.
diff --git a/libgcc/config/i386/gthr-win32.c b/libgcc/config/i386/gthr-win32.c
index 34de215b045..dc2504d1a41 100644
--- a/libgcc/config/i386/gthr-win32.c
+++ b/libgcc/config/i386/gthr-win32.c
@@ -1,7 +1,7 @@
/* Implementation of W32-specific threads compatibility routines for
libgcc2. */
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Mumit Khan <khan@xraylith.wisc.edu>.
Modified and moved to separate file by Danny Smith
<dannysmith@users.sourceforge.net>.
diff --git a/libgcc/config/i386/gthr-win32.h b/libgcc/config/i386/gthr-win32.h
index 9ba59e1a4ce..50230b23531 100644
--- a/libgcc/config/i386/gthr-win32.h
+++ b/libgcc/config/i386/gthr-win32.h
@@ -1,7 +1,7 @@
/* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Mumit Khan <khan@xraylith.wisc.edu>.
This file is part of GCC.
diff --git a/libgcc/config/i386/i386-asm.h b/libgcc/config/i386/i386-asm.h
index b5b7fb44fa5..3ada922267e 100644
--- a/libgcc/config/i386/i386-asm.h
+++ b/libgcc/config/i386/i386-asm.h
@@ -1,5 +1,5 @@
/* Defines common perprocessor and assembly macros for use by various stubs.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
Contributed by Daniel Santos <daniel.santos@pobox.com>
This file is part of GCC.
diff --git a/libgcc/config/i386/libgcc-bsd.ver b/libgcc/config/i386/libgcc-bsd.ver
index 8cb82c89971..92b8a81bd74 100644
--- a/libgcc/config/i386/libgcc-bsd.ver
+++ b/libgcc/config/i386/libgcc-bsd.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2018 Free Software Foundation, Inc.
+# Copyright (C) 2010-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/i386/libgcc-cygming.ver b/libgcc/config/i386/libgcc-cygming.ver
index 2b084fba64a..473e1ed437a 100644
--- a/libgcc/config/i386/libgcc-cygming.ver
+++ b/libgcc/config/i386/libgcc-cygming.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/i386/libgcc-darwin.10.4.ver b/libgcc/config/i386/libgcc-darwin.10.4.ver
index 588e0672986..a5ae3de0aad 100644
--- a/libgcc/config/i386/libgcc-darwin.10.4.ver
+++ b/libgcc/config/i386/libgcc-darwin.10.4.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/i386/libgcc-darwin.10.5.ver b/libgcc/config/i386/libgcc-darwin.10.5.ver
index 41b73b33c48..a15aceefe75 100644
--- a/libgcc/config/i386/libgcc-darwin.10.5.ver
+++ b/libgcc/config/i386/libgcc-darwin.10.5.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/i386/libgcc-glibc.ver b/libgcc/config/i386/libgcc-glibc.ver
index 3298864914a..6d3b3e5a9b6 100644
--- a/libgcc/config/i386/libgcc-glibc.ver
+++ b/libgcc/config/i386/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2018 Free Software Foundation, Inc.
+# Copyright (C) 2008-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/i386/libgcc-sol2.ver b/libgcc/config/i386/libgcc-sol2.ver
index 96ab8381a91..8afb3b7c206 100644
--- a/libgcc/config/i386/libgcc-sol2.ver
+++ b/libgcc/config/i386/libgcc-sol2.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2018 Free Software Foundation, Inc.
+# Copyright (C) 2010-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/i386/linux-unwind.h b/libgcc/config/i386/linux-unwind.h
index ea838e4e47b..0170fb8cc2d 100644
--- a/libgcc/config/i386/linux-unwind.h
+++ b/libgcc/config/i386/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for AMD x86-64 and x86.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/i386/morestack.S b/libgcc/config/i386/morestack.S
index 99e65eaaff4..c0718de948a 100644
--- a/libgcc/config/i386/morestack.S
+++ b/libgcc/config/i386/morestack.S
@@ -1,5 +1,5 @@
# x86/x86_64 support for -fsplit-stack.
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
# Contributed by Ian Lance Taylor <iant@google.com>.
# This file is part of GCC.
diff --git a/libgcc/config/i386/resms64.h b/libgcc/config/i386/resms64.h
index 1d1eb299fff..6118faec6fe 100644
--- a/libgcc/config/i386/resms64.h
+++ b/libgcc/config/i386/resms64.h
@@ -1,5 +1,5 @@
/* Epilogue stub for 64-bit ms/sysv clobbers: restore
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
Contributed by Daniel Santos <daniel.santos@pobox.com>
This file is part of GCC.
diff --git a/libgcc/config/i386/resms64f.h b/libgcc/config/i386/resms64f.h
index f5055d4e8b0..3386ba16f5a 100644
--- a/libgcc/config/i386/resms64f.h
+++ b/libgcc/config/i386/resms64f.h
@@ -1,5 +1,5 @@
/* Epilogue stub for 64-bit ms/sysv clobbers: restore (with hard frame pointer)
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
Contributed by Daniel Santos <daniel.santos@pobox.com>
This file is part of GCC.
diff --git a/libgcc/config/i386/resms64fx.h b/libgcc/config/i386/resms64fx.h
index 88d36f39ac8..5ac68d14556 100644
--- a/libgcc/config/i386/resms64fx.h
+++ b/libgcc/config/i386/resms64fx.h
@@ -1,5 +1,5 @@
/* Epilogue stub for 64-bit ms/sysv clobbers: restore, leave and return
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
Contributed by Daniel Santos <daniel.santos@pobox.com>
This file is part of GCC.
diff --git a/libgcc/config/i386/resms64x.h b/libgcc/config/i386/resms64x.h
index cf6830f3fd7..be56cb83608 100644
--- a/libgcc/config/i386/resms64x.h
+++ b/libgcc/config/i386/resms64x.h
@@ -1,5 +1,5 @@
/* Epilogue stub for 64-bit ms/sysv clobbers: restore and return
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
Contributed by Daniel Santos <daniel.santos@pobox.com>
This file is part of GCC.
diff --git a/libgcc/config/i386/savms64.h b/libgcc/config/i386/savms64.h
index 7c2fca7a745..8f95f42320d 100644
--- a/libgcc/config/i386/savms64.h
+++ b/libgcc/config/i386/savms64.h
@@ -1,5 +1,5 @@
/* Prologue stub for 64-bit ms/sysv clobbers: save
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
Contributed by Daniel Santos <daniel.santos@pobox.com>
This file is part of GCC.
diff --git a/libgcc/config/i386/savms64f.h b/libgcc/config/i386/savms64f.h
index d3c75765ab0..b94c0aaa5ea 100644
--- a/libgcc/config/i386/savms64f.h
+++ b/libgcc/config/i386/savms64f.h
@@ -1,5 +1,5 @@
/* Prologue stub for 64-bit ms/sysv clobbers: save (with hard frame pointer)
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
Contributed by Daniel Santos <daniel.santos@pobox.com>
This file is part of GCC.
diff --git a/libgcc/config/i386/sfp-exceptions.c b/libgcc/config/i386/sfp-exceptions.c
index 9d7d88d643b..a6c56392acd 100644
--- a/libgcc/config/i386/sfp-exceptions.c
+++ b/libgcc/config/i386/sfp-exceptions.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -104,5 +104,5 @@ __sfp_handle_exceptions (int _fex)
/* No need for fwait, exception is triggered by emitted fstp. */
#endif
}
-};
+}
#endif
diff --git a/libgcc/config/i386/shadow-stack-unwind.h b/libgcc/config/i386/shadow-stack-unwind.h
index a32f3e74b52..c53c3fe5c63 100644
--- a/libgcc/config/i386/shadow-stack-unwind.h
+++ b/libgcc/config/i386/shadow-stack-unwind.h
@@ -1,5 +1,5 @@
/* _Unwind_Frames_Extra with shadow stack for x86-64 and x86.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -49,8 +49,3 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
} \
} \
while (0)
-
-/* Increment frame count. Skip signal frames. */
-#undef _Unwind_Frames_Increment
-#define _Unwind_Frames_Increment(context, frames) \
- if (!_Unwind_IsSignalFrame (context)) frames++
diff --git a/libgcc/config/i386/sol2-c1.S b/libgcc/config/i386/sol2-c1.S
index dd5f6eb5d2b..6ac4a489ccb 100644
--- a/libgcc/config/i386/sol2-c1.S
+++ b/libgcc/config/i386/sol2-c1.S
@@ -1,6 +1,6 @@
/* crt1.s for Solaris 2, x86
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-2019 Free Software Foundation, Inc.
Written By Fred Fish, Nov 1992
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/i386/sol2-unwind.h b/libgcc/config/i386/sol2-unwind.h
index 2e975990cf1..4880b380e70 100644
--- a/libgcc/config/i386/sol2-unwind.h
+++ b/libgcc/config/i386/sol2-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for AMD x86-64 and x86.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -144,41 +144,7 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
mcontext_t *mctx;
long new_cfa;
- if (/* Solaris 10
- -----------
- <__sighndlr+0>: push %ebp
- <__sighndlr+1>: mov %esp,%ebp
- <__sighndlr+3>: pushl 0x10(%ebp)
- <__sighndlr+6>: pushl 0xc(%ebp)
- <__sighndlr+9>: pushl 0x8(%ebp)
- <__sighndlr+12>: call *0x14(%ebp)
- <__sighndlr+15>: add $0xc,%esp <--- PC
- <__sighndlr+18>: leave
- <__sighndlr+19>: ret */
- (*(unsigned long *)(pc - 15) == 0xffec8b55
- && *(unsigned long *)(pc - 11) == 0x75ff1075
- && *(unsigned long *)(pc - 7) == 0x0875ff0c
- && *(unsigned long *)(pc - 3) == 0x831455ff
- && *(unsigned long *)(pc + 1) == 0xc3c90cc4)
-
- || /* Solaris 11 before snv_125
- --------------------------
- <__sighndlr+0> push %ebp
- <__sighndlr+1> mov %esp,%ebp
- <__sighndlr+4> pushl 0x10(%ebp)
- <__sighndlr+6> pushl 0xc(%ebp)
- <__sighndlr+9> pushl 0x8(%ebp)
- <__sighndlr+12> call *0x14(%ebp)
- <__sighndlr+15> add $0xc,%esp
- <__sighndlr+18> leave <--- PC
- <__sighndlr+19> ret */
- (*(unsigned long *)(pc - 18) == 0xffec8b55
- && *(unsigned long *)(pc - 14) == 0x7fff107f
- && *(unsigned long *)(pc - 10) == 0x0875ff0c
- && *(unsigned long *)(pc - 6) == 0x83145fff
- && *(unsigned long *)(pc - 1) == 0xc3c90cc4)
-
- || /* Solaris 11 since snv_125
+ if (/* Solaris 11 since snv_125
-------------------------
<__sighndlr+0> push %ebp
<__sighndlr+1> mov %esp,%ebp
diff --git a/libgcc/config/i386/value-unwind.h b/libgcc/config/i386/value-unwind.h
index 6a076baad74..5c1157d00e8 100644
--- a/libgcc/config/i386/value-unwind.h
+++ b/libgcc/config/i386/value-unwind.h
@@ -1,5 +1,5 @@
/* Store register values as _Unwind_Word type in DWARF2 EH unwind context.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/i386/w32-unwind.h b/libgcc/config/i386/w32-unwind.h
index 031ee0d619f..9a161dd3d1d 100644
--- a/libgcc/config/i386/w32-unwind.h
+++ b/libgcc/config/i386/w32-unwind.h
@@ -1,5 +1,5 @@
/* Definitions for Dwarf2 EH unwind support for Windows32 targets
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
Contributed by Pascal Obry <obry@adacore.com>
This file is part of GCC.
diff --git a/libgcc/config/ia64/crtbegin.S b/libgcc/config/ia64/crtbegin.S
index 0aac70cf62a..213ccd7ab8b 100644
--- a/libgcc/config/ia64/crtbegin.S
+++ b/libgcc/config/ia64/crtbegin.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Jes Sorensen, <Jes.Sorensen@cern.ch>
This file is part of GCC.
@@ -45,11 +45,11 @@ dtor_ptr:
.type __dso_handle,@object
.size __dso_handle,8
#ifdef SHARED
- .section .data
+ .section .sdata
__dso_handle:
data8 __dso_handle
#else
- .section .bss
+ .section .sbss
.align 8
__dso_handle:
.skip 8
diff --git a/libgcc/config/ia64/crtend.S b/libgcc/config/ia64/crtend.S
index 9cc97edcec0..f6b7e36b288 100644
--- a/libgcc/config/ia64/crtend.S
+++ b/libgcc/config/ia64/crtend.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Jes Sorensen, <Jes.Sorensen@cern.ch>
This file is part of GCC.
diff --git a/libgcc/config/ia64/crtfastmath.c b/libgcc/config/ia64/crtfastmath.c
index c19d727bf0c..bf3c34f38b9 100644
--- a/libgcc/config/ia64/crtfastmath.c
+++ b/libgcc/config/ia64/crtfastmath.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by David Mosberger <davidm@hpl.hp.com>.
This file is part of GCC.
diff --git a/libgcc/config/ia64/crti.S b/libgcc/config/ia64/crti.S
index d685e08127d..0f851504e85 100644
--- a/libgcc/config/ia64/crti.S
+++ b/libgcc/config/ia64/crti.S
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
# Written By Timothy Wall
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/ia64/crtn.S b/libgcc/config/ia64/crtn.S
index a4deaa75e7d..61bb56bdc63 100644
--- a/libgcc/config/ia64/crtn.S
+++ b/libgcc/config/ia64/crtn.S
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
# Written By Timothy Wall
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/ia64/fde-glibc.c b/libgcc/config/ia64/fde-glibc.c
index 54835ab4db3..143ca327c73 100644
--- a/libgcc/config/ia64/fde-glibc.c
+++ b/libgcc/config/ia64/fde-glibc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson <rth@cygnus.com>.
This file is part of GCC.
diff --git a/libgcc/config/ia64/fde-vms.c b/libgcc/config/ia64/fde-vms.c
index 6c871fe0cea..30cc6697edb 100644
--- a/libgcc/config/ia64/fde-vms.c
+++ b/libgcc/config/ia64/fde-vms.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
Contributed by Douglas B Rupp <rupp@gnat.com>
This file is part of GCC.
diff --git a/libgcc/config/ia64/lib1funcs.S b/libgcc/config/ia64/lib1funcs.S
index d76fc157aa6..c8737bb4c76 100644
--- a/libgcc/config/ia64/lib1funcs.S
+++ b/libgcc/config/ia64/lib1funcs.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by James E. Wilson <wilson@cygnus.com>.
This file is part of GCC.
diff --git a/libgcc/config/ia64/libgcc-glibc.ver b/libgcc/config/ia64/libgcc-glibc.ver
index d69c8aa4adf..71ada96f46a 100644
--- a/libgcc/config/ia64/libgcc-glibc.ver
+++ b/libgcc/config/ia64/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/ia64/libgcc-ia64.ver b/libgcc/config/ia64/libgcc-ia64.ver
index 583d5753c0f..24a5dd95a6f 100644
--- a/libgcc/config/ia64/libgcc-ia64.ver
+++ b/libgcc/config/ia64/libgcc-ia64.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/ia64/linux-unwind.h b/libgcc/config/ia64/linux-unwind.h
index 6644f8da703..8d746ada095 100644
--- a/libgcc/config/ia64/linux-unwind.h
+++ b/libgcc/config/ia64/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for IA64 Linux.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/ia64/quadlib.c b/libgcc/config/ia64/quadlib.c
index bddc45ce794..bc2657e0d6c 100644
--- a/libgcc/config/ia64/quadlib.c
+++ b/libgcc/config/ia64/quadlib.c
@@ -1,5 +1,5 @@
/* Subroutines for long double support.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/ia64/sfp-exceptions.c b/libgcc/config/ia64/sfp-exceptions.c
index fab47af6123..f430fda2c74 100644
--- a/libgcc/config/ia64/sfp-exceptions.c
+++ b/libgcc/config/ia64/sfp-exceptions.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/ia64/tf-signs.c b/libgcc/config/ia64/tf-signs.c
index ee68d9962d2..cf86d17cf10 100644
--- a/libgcc/config/ia64/tf-signs.c
+++ b/libgcc/config/ia64/tf-signs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/ia64/unwind-ia64.c b/libgcc/config/ia64/unwind-ia64.c
index 5f97b49f5c5..c4eb3119145 100644
--- a/libgcc/config/ia64/unwind-ia64.c
+++ b/libgcc/config/ia64/unwind-ia64.c
@@ -1,6 +1,6 @@
/* Subroutines needed for unwinding IA-64 standard format stack frame
info for exception handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Andrew MacLeod <amacleod@cygnus.com>
Andrew Haley <aph@cygnus.com>
David Mosberger-Tang <davidm@hpl.hp.com>
diff --git a/libgcc/config/ia64/unwind-ia64.h b/libgcc/config/ia64/unwind-ia64.h
index 1d9980b196a..f70ac8abff1 100644
--- a/libgcc/config/ia64/unwind-ia64.h
+++ b/libgcc/config/ia64/unwind-ia64.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Andrew MacLeod <amacleod@cygnus.com>
Andrew Haley <aph@cygnus.com>
diff --git a/libgcc/config/ia64/vms-crtinit.S b/libgcc/config/ia64/vms-crtinit.S
index 0c441613a53..cadbeb8a509 100644
--- a/libgcc/config/ia64/vms-crtinit.S
+++ b/libgcc/config/ia64/vms-crtinit.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/ia64/vms-unwind.h b/libgcc/config/ia64/vms-unwind.h
index 4ba9728dafd..f369ef9af11 100644
--- a/libgcc/config/ia64/vms-unwind.h
+++ b/libgcc/config/ia64/vms-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for IA64 VMS.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/iq2000/lib2funcs.c b/libgcc/config/iq2000/lib2funcs.c
index c8124300499..a5059e5fb35 100644
--- a/libgcc/config/iq2000/lib2funcs.c
+++ b/libgcc/config/iq2000/lib2funcs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/ChangeLog b/libgcc/config/libbid/ChangeLog
index 3d7205efc04..8983ef631dd 100644
--- a/libgcc/config/libbid/ChangeLog
+++ b/libgcc/config/libbid/ChangeLog
@@ -399,7 +399,7 @@
* inline_bid_add.h: Likewise.
* sqrt_macros.h: Likewise.
-Copyright (C) 2007-2018 Free Software Foundation, Inc.
+Copyright (C) 2007-2019 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/libgcc/config/libbid/_addsub_dd.c b/libgcc/config/libbid/_addsub_dd.c
index d40ab17c016..bd21d1cc93e 100644
--- a/libgcc/config/libbid/_addsub_dd.c
+++ b/libgcc/config/libbid/_addsub_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_addsub_sd.c b/libgcc/config/libbid/_addsub_sd.c
index 6c7e990b93c..358c024c228 100644
--- a/libgcc/config/libbid/_addsub_sd.c
+++ b/libgcc/config/libbid/_addsub_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_addsub_td.c b/libgcc/config/libbid/_addsub_td.c
index 9728b7a271d..1953fdee1d5 100644
--- a/libgcc/config/libbid/_addsub_td.c
+++ b/libgcc/config/libbid/_addsub_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_dd_to_df.c b/libgcc/config/libbid/_dd_to_df.c
index 1f76e2b07ac..1721c701456 100644
--- a/libgcc/config/libbid/_dd_to_df.c
+++ b/libgcc/config/libbid/_dd_to_df.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_dd_to_di.c b/libgcc/config/libbid/_dd_to_di.c
index fa6dea61007..348a5625efe 100644
--- a/libgcc/config/libbid/_dd_to_di.c
+++ b/libgcc/config/libbid/_dd_to_di.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_dd_to_sd.c b/libgcc/config/libbid/_dd_to_sd.c
index b4997bf0b25..495d9285d5c 100644
--- a/libgcc/config/libbid/_dd_to_sd.c
+++ b/libgcc/config/libbid/_dd_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_dd_to_sf.c b/libgcc/config/libbid/_dd_to_sf.c
index 2a1e3756936..6bda54d9838 100644
--- a/libgcc/config/libbid/_dd_to_sf.c
+++ b/libgcc/config/libbid/_dd_to_sf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_dd_to_si.c b/libgcc/config/libbid/_dd_to_si.c
index 255f8d9ee9c..8f11d4c826e 100644
--- a/libgcc/config/libbid/_dd_to_si.c
+++ b/libgcc/config/libbid/_dd_to_si.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_dd_to_td.c b/libgcc/config/libbid/_dd_to_td.c
index 9df78724053..fce45828fa6 100644
--- a/libgcc/config/libbid/_dd_to_td.c
+++ b/libgcc/config/libbid/_dd_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_dd_to_tf.c b/libgcc/config/libbid/_dd_to_tf.c
index af86825029f..de62ce83e89 100644
--- a/libgcc/config/libbid/_dd_to_tf.c
+++ b/libgcc/config/libbid/_dd_to_tf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_dd_to_udi.c b/libgcc/config/libbid/_dd_to_udi.c
index 45ebf872c0b..7027deb4b5e 100644
--- a/libgcc/config/libbid/_dd_to_udi.c
+++ b/libgcc/config/libbid/_dd_to_udi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_dd_to_usi.c b/libgcc/config/libbid/_dd_to_usi.c
index d2995baaa63..9a36be6a1da 100644
--- a/libgcc/config/libbid/_dd_to_usi.c
+++ b/libgcc/config/libbid/_dd_to_usi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_dd_to_xf.c b/libgcc/config/libbid/_dd_to_xf.c
index cd215cedc56..16bd1007fd1 100644
--- a/libgcc/config/libbid/_dd_to_xf.c
+++ b/libgcc/config/libbid/_dd_to_xf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_df_to_dd.c b/libgcc/config/libbid/_df_to_dd.c
index 5794960e809..3bea544904b 100644
--- a/libgcc/config/libbid/_df_to_dd.c
+++ b/libgcc/config/libbid/_df_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_df_to_sd.c b/libgcc/config/libbid/_df_to_sd.c
index a4a04c02c23..1332e45622f 100644
--- a/libgcc/config/libbid/_df_to_sd.c
+++ b/libgcc/config/libbid/_df_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_df_to_td.c b/libgcc/config/libbid/_df_to_td.c
index 4248103dfb6..807439dc2ba 100644
--- a/libgcc/config/libbid/_df_to_td.c
+++ b/libgcc/config/libbid/_df_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_di_to_dd.c b/libgcc/config/libbid/_di_to_dd.c
index 4320384e071..e96ef6c2a91 100644
--- a/libgcc/config/libbid/_di_to_dd.c
+++ b/libgcc/config/libbid/_di_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_di_to_sd.c b/libgcc/config/libbid/_di_to_sd.c
index 08c3d14d44b..d56d4ea211e 100644
--- a/libgcc/config/libbid/_di_to_sd.c
+++ b/libgcc/config/libbid/_di_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_di_to_td.c b/libgcc/config/libbid/_di_to_td.c
index ae86edc400c..4d2746c2b11 100644
--- a/libgcc/config/libbid/_di_to_td.c
+++ b/libgcc/config/libbid/_di_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_div_dd.c b/libgcc/config/libbid/_div_dd.c
index 905fc17aa7a..f85007e6d28 100644
--- a/libgcc/config/libbid/_div_dd.c
+++ b/libgcc/config/libbid/_div_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_div_sd.c b/libgcc/config/libbid/_div_sd.c
index d3e7309d5a6..a6283086aa1 100644
--- a/libgcc/config/libbid/_div_sd.c
+++ b/libgcc/config/libbid/_div_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_div_td.c b/libgcc/config/libbid/_div_td.c
index 02a88224d37..569f7246be7 100644
--- a/libgcc/config/libbid/_div_td.c
+++ b/libgcc/config/libbid/_div_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_eq_dd.c b/libgcc/config/libbid/_eq_dd.c
index 56ced458528..9c2913a64ef 100644
--- a/libgcc/config/libbid/_eq_dd.c
+++ b/libgcc/config/libbid/_eq_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_eq_sd.c b/libgcc/config/libbid/_eq_sd.c
index 60d9df5aef8..b2b67d1897a 100644
--- a/libgcc/config/libbid/_eq_sd.c
+++ b/libgcc/config/libbid/_eq_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_eq_td.c b/libgcc/config/libbid/_eq_td.c
index dfb10d5c636..4b0b694ab2c 100644
--- a/libgcc/config/libbid/_eq_td.c
+++ b/libgcc/config/libbid/_eq_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_ge_dd.c b/libgcc/config/libbid/_ge_dd.c
index 4fc0e6b732b..daf86e3b766 100644
--- a/libgcc/config/libbid/_ge_dd.c
+++ b/libgcc/config/libbid/_ge_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_ge_sd.c b/libgcc/config/libbid/_ge_sd.c
index 58abd50149e..e2562911567 100644
--- a/libgcc/config/libbid/_ge_sd.c
+++ b/libgcc/config/libbid/_ge_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_ge_td.c b/libgcc/config/libbid/_ge_td.c
index a59687897e3..b75b41719cb 100644
--- a/libgcc/config/libbid/_ge_td.c
+++ b/libgcc/config/libbid/_ge_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_gt_dd.c b/libgcc/config/libbid/_gt_dd.c
index 2f011de3c2f..45a4cd6043d 100644
--- a/libgcc/config/libbid/_gt_dd.c
+++ b/libgcc/config/libbid/_gt_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_gt_sd.c b/libgcc/config/libbid/_gt_sd.c
index 4701e5a0861..01de172accd 100644
--- a/libgcc/config/libbid/_gt_sd.c
+++ b/libgcc/config/libbid/_gt_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_gt_td.c b/libgcc/config/libbid/_gt_td.c
index d9d32f3d7aa..03ef7fcef60 100644
--- a/libgcc/config/libbid/_gt_td.c
+++ b/libgcc/config/libbid/_gt_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_isinfd128.c b/libgcc/config/libbid/_isinfd128.c
index dfa23923654..f85b42a6844 100644
--- a/libgcc/config/libbid/_isinfd128.c
+++ b/libgcc/config/libbid/_isinfd128.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_isinfd32.c b/libgcc/config/libbid/_isinfd32.c
index 3815ca6e01e..c1e8187b7d4 100644
--- a/libgcc/config/libbid/_isinfd32.c
+++ b/libgcc/config/libbid/_isinfd32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_isinfd64.c b/libgcc/config/libbid/_isinfd64.c
index c6dedc3a77d..1a0add3877e 100644
--- a/libgcc/config/libbid/_isinfd64.c
+++ b/libgcc/config/libbid/_isinfd64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_le_dd.c b/libgcc/config/libbid/_le_dd.c
index abae15e2e90..f10bbf993d9 100644
--- a/libgcc/config/libbid/_le_dd.c
+++ b/libgcc/config/libbid/_le_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_le_sd.c b/libgcc/config/libbid/_le_sd.c
index 10d5fbecba0..284641c701d 100644
--- a/libgcc/config/libbid/_le_sd.c
+++ b/libgcc/config/libbid/_le_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_le_td.c b/libgcc/config/libbid/_le_td.c
index 7dd4e3572c0..cbedd964dad 100644
--- a/libgcc/config/libbid/_le_td.c
+++ b/libgcc/config/libbid/_le_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_lt_dd.c b/libgcc/config/libbid/_lt_dd.c
index 1737f4d62eb..c77e13e9b91 100644
--- a/libgcc/config/libbid/_lt_dd.c
+++ b/libgcc/config/libbid/_lt_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_lt_sd.c b/libgcc/config/libbid/_lt_sd.c
index 31af06f8483..29834db14b9 100644
--- a/libgcc/config/libbid/_lt_sd.c
+++ b/libgcc/config/libbid/_lt_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_lt_td.c b/libgcc/config/libbid/_lt_td.c
index 02a03224070..8a4e75a1a3f 100644
--- a/libgcc/config/libbid/_lt_td.c
+++ b/libgcc/config/libbid/_lt_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_mul_dd.c b/libgcc/config/libbid/_mul_dd.c
index eb53126d23f..f35fa72f660 100644
--- a/libgcc/config/libbid/_mul_dd.c
+++ b/libgcc/config/libbid/_mul_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_mul_sd.c b/libgcc/config/libbid/_mul_sd.c
index a4605d664f9..3307cdc4587 100644
--- a/libgcc/config/libbid/_mul_sd.c
+++ b/libgcc/config/libbid/_mul_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_mul_td.c b/libgcc/config/libbid/_mul_td.c
index 050859d7445..3a22014f191 100644
--- a/libgcc/config/libbid/_mul_td.c
+++ b/libgcc/config/libbid/_mul_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_ne_dd.c b/libgcc/config/libbid/_ne_dd.c
index f70c6548279..a4a90c0e308 100644
--- a/libgcc/config/libbid/_ne_dd.c
+++ b/libgcc/config/libbid/_ne_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_ne_sd.c b/libgcc/config/libbid/_ne_sd.c
index 61005c3344f..b298ca0b72c 100644
--- a/libgcc/config/libbid/_ne_sd.c
+++ b/libgcc/config/libbid/_ne_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_ne_td.c b/libgcc/config/libbid/_ne_td.c
index aca57fb7bd4..9295b25b1d6 100644
--- a/libgcc/config/libbid/_ne_td.c
+++ b/libgcc/config/libbid/_ne_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sd_to_dd.c b/libgcc/config/libbid/_sd_to_dd.c
index daf2ac5cee9..a8a33e40f6a 100644
--- a/libgcc/config/libbid/_sd_to_dd.c
+++ b/libgcc/config/libbid/_sd_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sd_to_df.c b/libgcc/config/libbid/_sd_to_df.c
index bce3ddac12d..2b4d9088910 100644
--- a/libgcc/config/libbid/_sd_to_df.c
+++ b/libgcc/config/libbid/_sd_to_df.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sd_to_di.c b/libgcc/config/libbid/_sd_to_di.c
index 675261df450..2f28af15557 100644
--- a/libgcc/config/libbid/_sd_to_di.c
+++ b/libgcc/config/libbid/_sd_to_di.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sd_to_sf.c b/libgcc/config/libbid/_sd_to_sf.c
index c01a9fe0861..fd84a4b5d4e 100644
--- a/libgcc/config/libbid/_sd_to_sf.c
+++ b/libgcc/config/libbid/_sd_to_sf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sd_to_si.c b/libgcc/config/libbid/_sd_to_si.c
index b1b7a5b712d..6f6f7eb6640 100644
--- a/libgcc/config/libbid/_sd_to_si.c
+++ b/libgcc/config/libbid/_sd_to_si.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sd_to_td.c b/libgcc/config/libbid/_sd_to_td.c
index 6bafaa36994..fbdf3214925 100644
--- a/libgcc/config/libbid/_sd_to_td.c
+++ b/libgcc/config/libbid/_sd_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sd_to_tf.c b/libgcc/config/libbid/_sd_to_tf.c
index 7f563d1dc75..51135ddb734 100644
--- a/libgcc/config/libbid/_sd_to_tf.c
+++ b/libgcc/config/libbid/_sd_to_tf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sd_to_udi.c b/libgcc/config/libbid/_sd_to_udi.c
index 9ba53299b56..f5290dc62d8 100644
--- a/libgcc/config/libbid/_sd_to_udi.c
+++ b/libgcc/config/libbid/_sd_to_udi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sd_to_usi.c b/libgcc/config/libbid/_sd_to_usi.c
index 4280e9bcd3f..40e0cd36a58 100644
--- a/libgcc/config/libbid/_sd_to_usi.c
+++ b/libgcc/config/libbid/_sd_to_usi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sd_to_xf.c b/libgcc/config/libbid/_sd_to_xf.c
index 822797b5f43..80065ae8bc3 100644
--- a/libgcc/config/libbid/_sd_to_xf.c
+++ b/libgcc/config/libbid/_sd_to_xf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sf_to_dd.c b/libgcc/config/libbid/_sf_to_dd.c
index ce453a0f6d1..e23bdb43c80 100644
--- a/libgcc/config/libbid/_sf_to_dd.c
+++ b/libgcc/config/libbid/_sf_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sf_to_sd.c b/libgcc/config/libbid/_sf_to_sd.c
index febed383dff..c38c768cfca 100644
--- a/libgcc/config/libbid/_sf_to_sd.c
+++ b/libgcc/config/libbid/_sf_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sf_to_td.c b/libgcc/config/libbid/_sf_to_td.c
index b7345c6ca3e..d53fd8b2f29 100644
--- a/libgcc/config/libbid/_sf_to_td.c
+++ b/libgcc/config/libbid/_sf_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_si_to_dd.c b/libgcc/config/libbid/_si_to_dd.c
index 37e52899946..4fc11064cd9 100644
--- a/libgcc/config/libbid/_si_to_dd.c
+++ b/libgcc/config/libbid/_si_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_si_to_sd.c b/libgcc/config/libbid/_si_to_sd.c
index 4e049a86741..980432dde2d 100644
--- a/libgcc/config/libbid/_si_to_sd.c
+++ b/libgcc/config/libbid/_si_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_si_to_td.c b/libgcc/config/libbid/_si_to_td.c
index 8340e2b690e..b2187dbc3af 100644
--- a/libgcc/config/libbid/_si_to_td.c
+++ b/libgcc/config/libbid/_si_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_td_to_dd.c b/libgcc/config/libbid/_td_to_dd.c
index cb7d26afa46..3e749cc272c 100644
--- a/libgcc/config/libbid/_td_to_dd.c
+++ b/libgcc/config/libbid/_td_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_td_to_df.c b/libgcc/config/libbid/_td_to_df.c
index f81170aa741..e0526a59767 100644
--- a/libgcc/config/libbid/_td_to_df.c
+++ b/libgcc/config/libbid/_td_to_df.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_td_to_di.c b/libgcc/config/libbid/_td_to_di.c
index 8cddfbdaf0c..1432644104b 100644
--- a/libgcc/config/libbid/_td_to_di.c
+++ b/libgcc/config/libbid/_td_to_di.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_td_to_sd.c b/libgcc/config/libbid/_td_to_sd.c
index 9c0c4006e74..208eaf4cba8 100644
--- a/libgcc/config/libbid/_td_to_sd.c
+++ b/libgcc/config/libbid/_td_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_td_to_sf.c b/libgcc/config/libbid/_td_to_sf.c
index ee0a4c6e170..c6ebef0dc9a 100644
--- a/libgcc/config/libbid/_td_to_sf.c
+++ b/libgcc/config/libbid/_td_to_sf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_td_to_si.c b/libgcc/config/libbid/_td_to_si.c
index e744375c334..13365c4d4a6 100644
--- a/libgcc/config/libbid/_td_to_si.c
+++ b/libgcc/config/libbid/_td_to_si.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_td_to_tf.c b/libgcc/config/libbid/_td_to_tf.c
index 157a3b12eb7..b45ac556c82 100644
--- a/libgcc/config/libbid/_td_to_tf.c
+++ b/libgcc/config/libbid/_td_to_tf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_td_to_udi.c b/libgcc/config/libbid/_td_to_udi.c
index ed586054c61..690589fd2e3 100644
--- a/libgcc/config/libbid/_td_to_udi.c
+++ b/libgcc/config/libbid/_td_to_udi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_td_to_usi.c b/libgcc/config/libbid/_td_to_usi.c
index 86ce14aeef2..a5cd42d519b 100644
--- a/libgcc/config/libbid/_td_to_usi.c
+++ b/libgcc/config/libbid/_td_to_usi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_td_to_xf.c b/libgcc/config/libbid/_td_to_xf.c
index 57a1cd8164c..493c9321864 100644
--- a/libgcc/config/libbid/_td_to_xf.c
+++ b/libgcc/config/libbid/_td_to_xf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_tf_to_dd.c b/libgcc/config/libbid/_tf_to_dd.c
index 7f2b028fe52..fceaefdd3e5 100644
--- a/libgcc/config/libbid/_tf_to_dd.c
+++ b/libgcc/config/libbid/_tf_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_tf_to_sd.c b/libgcc/config/libbid/_tf_to_sd.c
index b532db5fcf2..69bd6cb3274 100644
--- a/libgcc/config/libbid/_tf_to_sd.c
+++ b/libgcc/config/libbid/_tf_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_tf_to_td.c b/libgcc/config/libbid/_tf_to_td.c
index cfe43c3dacc..5436f8dbcd7 100644
--- a/libgcc/config/libbid/_tf_to_td.c
+++ b/libgcc/config/libbid/_tf_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_udi_to_dd.c b/libgcc/config/libbid/_udi_to_dd.c
index d36c69b3e3a..fb1cf7d318e 100644
--- a/libgcc/config/libbid/_udi_to_dd.c
+++ b/libgcc/config/libbid/_udi_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_udi_to_sd.c b/libgcc/config/libbid/_udi_to_sd.c
index c8eb09d2162..cb71a43032f 100644
--- a/libgcc/config/libbid/_udi_to_sd.c
+++ b/libgcc/config/libbid/_udi_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_udi_to_td.c b/libgcc/config/libbid/_udi_to_td.c
index 3af76036607..64c6023082c 100644
--- a/libgcc/config/libbid/_udi_to_td.c
+++ b/libgcc/config/libbid/_udi_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_unord_dd.c b/libgcc/config/libbid/_unord_dd.c
index 366e7aa7b5c..d5f4f73f178 100644
--- a/libgcc/config/libbid/_unord_dd.c
+++ b/libgcc/config/libbid/_unord_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_unord_sd.c b/libgcc/config/libbid/_unord_sd.c
index 655e3da6694..8ce1112ce99 100644
--- a/libgcc/config/libbid/_unord_sd.c
+++ b/libgcc/config/libbid/_unord_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_unord_td.c b/libgcc/config/libbid/_unord_td.c
index 9438577bd5b..7e0e59878e3 100644
--- a/libgcc/config/libbid/_unord_td.c
+++ b/libgcc/config/libbid/_unord_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_usi_to_dd.c b/libgcc/config/libbid/_usi_to_dd.c
index 57e0f826487..76d43ace185 100644
--- a/libgcc/config/libbid/_usi_to_dd.c
+++ b/libgcc/config/libbid/_usi_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_usi_to_sd.c b/libgcc/config/libbid/_usi_to_sd.c
index c1529ccd2ff..5aeace7fa0b 100644
--- a/libgcc/config/libbid/_usi_to_sd.c
+++ b/libgcc/config/libbid/_usi_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_usi_to_td.c b/libgcc/config/libbid/_usi_to_td.c
index 5fe2f199b26..525586f223f 100644
--- a/libgcc/config/libbid/_usi_to_td.c
+++ b/libgcc/config/libbid/_usi_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_xf_to_dd.c b/libgcc/config/libbid/_xf_to_dd.c
index 0457aec1adc..7abe2966c9c 100644
--- a/libgcc/config/libbid/_xf_to_dd.c
+++ b/libgcc/config/libbid/_xf_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_xf_to_sd.c b/libgcc/config/libbid/_xf_to_sd.c
index 2a79f276290..c1242ce49aa 100644
--- a/libgcc/config/libbid/_xf_to_sd.c
+++ b/libgcc/config/libbid/_xf_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_xf_to_td.c b/libgcc/config/libbid/_xf_to_td.c
index 6fd61f0459a..bd7b0003662 100644
--- a/libgcc/config/libbid/_xf_to_td.c
+++ b/libgcc/config/libbid/_xf_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128.c b/libgcc/config/libbid/bid128.c
index 97b369f9064..588cb5b8ce9 100644
--- a/libgcc/config/libbid/bid128.c
+++ b/libgcc/config/libbid/bid128.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_2_str.h b/libgcc/config/libbid/bid128_2_str.h
index 99cb5127c07..ad14e0ce976 100644
--- a/libgcc/config/libbid/bid128_2_str.h
+++ b/libgcc/config/libbid/bid128_2_str.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_2_str_macros.h b/libgcc/config/libbid/bid128_2_str_macros.h
index 5ac0e057777..40904941652 100644
--- a/libgcc/config/libbid/bid128_2_str_macros.h
+++ b/libgcc/config/libbid/bid128_2_str_macros.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_2_str_tables.c b/libgcc/config/libbid/bid128_2_str_tables.c
index 4a2bd95f267..46d5318a62e 100644
--- a/libgcc/config/libbid/bid128_2_str_tables.c
+++ b/libgcc/config/libbid/bid128_2_str_tables.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_add.c b/libgcc/config/libbid/bid128_add.c
index 74687fe4e9d..b9f3fab345d 100644
--- a/libgcc/config/libbid/bid128_add.c
+++ b/libgcc/config/libbid/bid128_add.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_compare.c b/libgcc/config/libbid/bid128_compare.c
index a5fc82c513a..89c04b7c1a9 100644
--- a/libgcc/config/libbid/bid128_compare.c
+++ b/libgcc/config/libbid/bid128_compare.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_div.c b/libgcc/config/libbid/bid128_div.c
index 12b36a0fffa..dbca71ec32d 100644
--- a/libgcc/config/libbid/bid128_div.c
+++ b/libgcc/config/libbid/bid128_div.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_fma.c b/libgcc/config/libbid/bid128_fma.c
index dcd27dcdf0c..1e99568739f 100644
--- a/libgcc/config/libbid/bid128_fma.c
+++ b/libgcc/config/libbid/bid128_fma.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_logb.c b/libgcc/config/libbid/bid128_logb.c
index 2d7d2a403b9..db38810d4ee 100644
--- a/libgcc/config/libbid/bid128_logb.c
+++ b/libgcc/config/libbid/bid128_logb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_minmax.c b/libgcc/config/libbid/bid128_minmax.c
index 509dde864e4..4b93f21bdd4 100644
--- a/libgcc/config/libbid/bid128_minmax.c
+++ b/libgcc/config/libbid/bid128_minmax.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_mul.c b/libgcc/config/libbid/bid128_mul.c
index 5c5e8c10f8b..975f3187afc 100644
--- a/libgcc/config/libbid/bid128_mul.c
+++ b/libgcc/config/libbid/bid128_mul.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_next.c b/libgcc/config/libbid/bid128_next.c
index bf69781a9d0..ec03828761a 100644
--- a/libgcc/config/libbid/bid128_next.c
+++ b/libgcc/config/libbid/bid128_next.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_noncomp.c b/libgcc/config/libbid/bid128_noncomp.c
index b7d1acfee41..11692fc081d 100644
--- a/libgcc/config/libbid/bid128_noncomp.c
+++ b/libgcc/config/libbid/bid128_noncomp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_quantize.c b/libgcc/config/libbid/bid128_quantize.c
index 5190ed94a2a..d034581b89c 100644
--- a/libgcc/config/libbid/bid128_quantize.c
+++ b/libgcc/config/libbid/bid128_quantize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_rem.c b/libgcc/config/libbid/bid128_rem.c
index 576afa38496..63702427610 100644
--- a/libgcc/config/libbid/bid128_rem.c
+++ b/libgcc/config/libbid/bid128_rem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_round_integral.c b/libgcc/config/libbid/bid128_round_integral.c
index 52dc2564b3a..91a7913fc0f 100644
--- a/libgcc/config/libbid/bid128_round_integral.c
+++ b/libgcc/config/libbid/bid128_round_integral.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_scalb.c b/libgcc/config/libbid/bid128_scalb.c
index d8a69bcee1e..430eaa5e126 100644
--- a/libgcc/config/libbid/bid128_scalb.c
+++ b/libgcc/config/libbid/bid128_scalb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_sqrt.c b/libgcc/config/libbid/bid128_sqrt.c
index f6567478301..f2124c7837a 100644
--- a/libgcc/config/libbid/bid128_sqrt.c
+++ b/libgcc/config/libbid/bid128_sqrt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_string.c b/libgcc/config/libbid/bid128_string.c
index 12671d2b49f..bfa2f0e3df2 100644
--- a/libgcc/config/libbid/bid128_string.c
+++ b/libgcc/config/libbid/bid128_string.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_to_int16.c b/libgcc/config/libbid/bid128_to_int16.c
index 67a154a536c..baddcb618d1 100644
--- a/libgcc/config/libbid/bid128_to_int16.c
+++ b/libgcc/config/libbid/bid128_to_int16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_to_int32.c b/libgcc/config/libbid/bid128_to_int32.c
index 1d06814b77b..b83630870c2 100644
--- a/libgcc/config/libbid/bid128_to_int32.c
+++ b/libgcc/config/libbid/bid128_to_int32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_to_int64.c b/libgcc/config/libbid/bid128_to_int64.c
index 80148dfa305..4a5c0c65869 100644
--- a/libgcc/config/libbid/bid128_to_int64.c
+++ b/libgcc/config/libbid/bid128_to_int64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_to_int8.c b/libgcc/config/libbid/bid128_to_int8.c
index f7acce499cc..bd95b597a3f 100644
--- a/libgcc/config/libbid/bid128_to_int8.c
+++ b/libgcc/config/libbid/bid128_to_int8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_to_uint16.c b/libgcc/config/libbid/bid128_to_uint16.c
index 7da6dc558d8..de347d9013f 100644
--- a/libgcc/config/libbid/bid128_to_uint16.c
+++ b/libgcc/config/libbid/bid128_to_uint16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_to_uint32.c b/libgcc/config/libbid/bid128_to_uint32.c
index be7d087b295..508bec11f9c 100644
--- a/libgcc/config/libbid/bid128_to_uint32.c
+++ b/libgcc/config/libbid/bid128_to_uint32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_to_uint64.c b/libgcc/config/libbid/bid128_to_uint64.c
index 4d960e27d5f..220549e6e9f 100644
--- a/libgcc/config/libbid/bid128_to_uint64.c
+++ b/libgcc/config/libbid/bid128_to_uint64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid128_to_uint8.c b/libgcc/config/libbid/bid128_to_uint8.c
index 04aee801668..66806221395 100644
--- a/libgcc/config/libbid/bid128_to_uint8.c
+++ b/libgcc/config/libbid/bid128_to_uint8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid32_to_bid128.c b/libgcc/config/libbid/bid32_to_bid128.c
index a101dc7c390..c6a87564296 100644
--- a/libgcc/config/libbid/bid32_to_bid128.c
+++ b/libgcc/config/libbid/bid32_to_bid128.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid32_to_bid64.c b/libgcc/config/libbid/bid32_to_bid64.c
index a11bc126d43..f7a273e75c1 100644
--- a/libgcc/config/libbid/bid32_to_bid64.c
+++ b/libgcc/config/libbid/bid32_to_bid64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_add.c b/libgcc/config/libbid/bid64_add.c
index 5996bb20143..d2f70a1075d 100644
--- a/libgcc/config/libbid/bid64_add.c
+++ b/libgcc/config/libbid/bid64_add.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_compare.c b/libgcc/config/libbid/bid64_compare.c
index daebfce5bad..8659e658603 100644
--- a/libgcc/config/libbid/bid64_compare.c
+++ b/libgcc/config/libbid/bid64_compare.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_div.c b/libgcc/config/libbid/bid64_div.c
index 261d1f62db7..e744ed9c125 100644
--- a/libgcc/config/libbid/bid64_div.c
+++ b/libgcc/config/libbid/bid64_div.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_fma.c b/libgcc/config/libbid/bid64_fma.c
index 519e29d0b58..ad4a9ea9be4 100644
--- a/libgcc/config/libbid/bid64_fma.c
+++ b/libgcc/config/libbid/bid64_fma.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_logb.c b/libgcc/config/libbid/bid64_logb.c
index d9a7d5b780f..52f7de1bec7 100644
--- a/libgcc/config/libbid/bid64_logb.c
+++ b/libgcc/config/libbid/bid64_logb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_minmax.c b/libgcc/config/libbid/bid64_minmax.c
index b5f291977d8..3cf75177aba 100644
--- a/libgcc/config/libbid/bid64_minmax.c
+++ b/libgcc/config/libbid/bid64_minmax.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_mul.c b/libgcc/config/libbid/bid64_mul.c
index 3ac79c4bc40..57c01c3e817 100644
--- a/libgcc/config/libbid/bid64_mul.c
+++ b/libgcc/config/libbid/bid64_mul.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_next.c b/libgcc/config/libbid/bid64_next.c
index c3cc0f179b7..96681571e2d 100644
--- a/libgcc/config/libbid/bid64_next.c
+++ b/libgcc/config/libbid/bid64_next.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_noncomp.c b/libgcc/config/libbid/bid64_noncomp.c
index 0f7f9276d0e..1ce2aeb9ae5 100644
--- a/libgcc/config/libbid/bid64_noncomp.c
+++ b/libgcc/config/libbid/bid64_noncomp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_quantize.c b/libgcc/config/libbid/bid64_quantize.c
index beebef6023a..4b7a7ec2ee5 100644
--- a/libgcc/config/libbid/bid64_quantize.c
+++ b/libgcc/config/libbid/bid64_quantize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_rem.c b/libgcc/config/libbid/bid64_rem.c
index 79f3b746d09..262148e3b0a 100644
--- a/libgcc/config/libbid/bid64_rem.c
+++ b/libgcc/config/libbid/bid64_rem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_round_integral.c b/libgcc/config/libbid/bid64_round_integral.c
index d519ec0880d..f82400840fa 100644
--- a/libgcc/config/libbid/bid64_round_integral.c
+++ b/libgcc/config/libbid/bid64_round_integral.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_scalb.c b/libgcc/config/libbid/bid64_scalb.c
index 88d05d4e827..848afa302e7 100644
--- a/libgcc/config/libbid/bid64_scalb.c
+++ b/libgcc/config/libbid/bid64_scalb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_sqrt.c b/libgcc/config/libbid/bid64_sqrt.c
index abdcda6231c..65fc45b5f19 100644
--- a/libgcc/config/libbid/bid64_sqrt.c
+++ b/libgcc/config/libbid/bid64_sqrt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_string.c b/libgcc/config/libbid/bid64_string.c
index 1b9efbc0211..e6bfd0f0eeb 100644
--- a/libgcc/config/libbid/bid64_string.c
+++ b/libgcc/config/libbid/bid64_string.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_to_bid128.c b/libgcc/config/libbid/bid64_to_bid128.c
index bfae50d859c..bf49510b3a5 100644
--- a/libgcc/config/libbid/bid64_to_bid128.c
+++ b/libgcc/config/libbid/bid64_to_bid128.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_to_int16.c b/libgcc/config/libbid/bid64_to_int16.c
index be6bdeac86c..a677164231a 100644
--- a/libgcc/config/libbid/bid64_to_int16.c
+++ b/libgcc/config/libbid/bid64_to_int16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_to_int32.c b/libgcc/config/libbid/bid64_to_int32.c
index db4bf7b9a48..cbe8c4702e2 100644
--- a/libgcc/config/libbid/bid64_to_int32.c
+++ b/libgcc/config/libbid/bid64_to_int32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_to_int64.c b/libgcc/config/libbid/bid64_to_int64.c
index 964cbf3e026..3bcad565c13 100644
--- a/libgcc/config/libbid/bid64_to_int64.c
+++ b/libgcc/config/libbid/bid64_to_int64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_to_int8.c b/libgcc/config/libbid/bid64_to_int8.c
index d2074924f6f..a7f08bfc1b9 100644
--- a/libgcc/config/libbid/bid64_to_int8.c
+++ b/libgcc/config/libbid/bid64_to_int8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_to_uint16.c b/libgcc/config/libbid/bid64_to_uint16.c
index 5a18990dc1a..0031922ad5e 100644
--- a/libgcc/config/libbid/bid64_to_uint16.c
+++ b/libgcc/config/libbid/bid64_to_uint16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_to_uint32.c b/libgcc/config/libbid/bid64_to_uint32.c
index 4571e39bd49..ab769a870ab 100644
--- a/libgcc/config/libbid/bid64_to_uint32.c
+++ b/libgcc/config/libbid/bid64_to_uint32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_to_uint64.c b/libgcc/config/libbid/bid64_to_uint64.c
index 539ac51ce94..cab001184fb 100644
--- a/libgcc/config/libbid/bid64_to_uint64.c
+++ b/libgcc/config/libbid/bid64_to_uint64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid64_to_uint8.c b/libgcc/config/libbid/bid64_to_uint8.c
index 6087032a774..5554fe38d59 100644
--- a/libgcc/config/libbid/bid64_to_uint8.c
+++ b/libgcc/config/libbid/bid64_to_uint8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_b2d.h b/libgcc/config/libbid/bid_b2d.h
index 2f860cdf04b..3830b6f2f1d 100644
--- a/libgcc/config/libbid/bid_b2d.h
+++ b/libgcc/config/libbid/bid_b2d.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_binarydecimal.c b/libgcc/config/libbid/bid_binarydecimal.c
index 9e09c2f079b..adda7c149f8 100644
--- a/libgcc/config/libbid/bid_binarydecimal.c
+++ b/libgcc/config/libbid/bid_binarydecimal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_conf.h b/libgcc/config/libbid/bid_conf.h
index 2d8227c3a3b..8698bc8ae32 100644
--- a/libgcc/config/libbid/bid_conf.h
+++ b/libgcc/config/libbid/bid_conf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_convert_data.c b/libgcc/config/libbid/bid_convert_data.c
index 7caffec9e3d..70e6f074aa0 100644
--- a/libgcc/config/libbid/bid_convert_data.c
+++ b/libgcc/config/libbid/bid_convert_data.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_decimal_data.c b/libgcc/config/libbid/bid_decimal_data.c
index 74d93ddd360..5d606388bb8 100644
--- a/libgcc/config/libbid/bid_decimal_data.c
+++ b/libgcc/config/libbid/bid_decimal_data.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_decimal_globals.c b/libgcc/config/libbid/bid_decimal_globals.c
index 02a9425066e..27c9d709ec6 100644
--- a/libgcc/config/libbid/bid_decimal_globals.c
+++ b/libgcc/config/libbid/bid_decimal_globals.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_div_macros.h b/libgcc/config/libbid/bid_div_macros.h
index 20e477af4cf..791f756cc23 100644
--- a/libgcc/config/libbid/bid_div_macros.h
+++ b/libgcc/config/libbid/bid_div_macros.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_dpd.c b/libgcc/config/libbid/bid_dpd.c
index 27cacab00f5..79c527f5cd2 100644
--- a/libgcc/config/libbid/bid_dpd.c
+++ b/libgcc/config/libbid/bid_dpd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_flag_operations.c b/libgcc/config/libbid/bid_flag_operations.c
index 124f3a7a80b..96515296f57 100644
--- a/libgcc/config/libbid/bid_flag_operations.c
+++ b/libgcc/config/libbid/bid_flag_operations.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_from_int.c b/libgcc/config/libbid/bid_from_int.c
index 5424d4f339b..f34e5ea945e 100644
--- a/libgcc/config/libbid/bid_from_int.c
+++ b/libgcc/config/libbid/bid_from_int.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_functions.h b/libgcc/config/libbid/bid_functions.h
index 94fd032d1d5..3a9c83a00f5 100644
--- a/libgcc/config/libbid/bid_functions.h
+++ b/libgcc/config/libbid/bid_functions.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_gcc_intrinsics.h b/libgcc/config/libbid/bid_gcc_intrinsics.h
index 50a0a2aa01e..d258f526cc2 100644
--- a/libgcc/config/libbid/bid_gcc_intrinsics.h
+++ b/libgcc/config/libbid/bid_gcc_intrinsics.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_inline_add.h b/libgcc/config/libbid/bid_inline_add.h
index c4882aec064..35e43b4a55f 100644
--- a/libgcc/config/libbid/bid_inline_add.h
+++ b/libgcc/config/libbid/bid_inline_add.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_internal.h b/libgcc/config/libbid/bid_internal.h
index 7d5bdd77414..16e67767d93 100644
--- a/libgcc/config/libbid/bid_internal.h
+++ b/libgcc/config/libbid/bid_internal.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_round.c b/libgcc/config/libbid/bid_round.c
index a9dc3508fe3..a0d902dcdf5 100644
--- a/libgcc/config/libbid/bid_round.c
+++ b/libgcc/config/libbid/bid_round.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/bid_sqrt_macros.h b/libgcc/config/libbid/bid_sqrt_macros.h
index ef97af18ac2..965c0c065fb 100644
--- a/libgcc/config/libbid/bid_sqrt_macros.h
+++ b/libgcc/config/libbid/bid_sqrt_macros.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libgcc-glibc.ver b/libgcc/config/libgcc-glibc.ver
index 35e4fb5c251..5101e1e3006 100644
--- a/libgcc/config/libgcc-glibc.ver
+++ b/libgcc/config/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/lm32/_ashlsi3.S b/libgcc/config/lm32/_ashlsi3.S
index 7d110b76e3b..0151d39dd27 100644
--- a/libgcc/config/lm32/_ashlsi3.S
+++ b/libgcc/config/lm32/_ashlsi3.S
@@ -1,7 +1,7 @@
# _ashlsi3.S for Lattice Mico32
# Contributed by Jon Beniston <jon@beniston.com> and Richard Henderson.
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/lm32/_ashrsi3.S b/libgcc/config/lm32/_ashrsi3.S
index 790d6d6b6c6..6cdbd0431ca 100644
--- a/libgcc/config/lm32/_ashrsi3.S
+++ b/libgcc/config/lm32/_ashrsi3.S
@@ -1,7 +1,7 @@
# _ashrsi3.S for Lattice Mico32
# Contributed by Jon Beniston <jon@beniston.com> and Richard Henderson.
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/lm32/_divsi3.c b/libgcc/config/lm32/_divsi3.c
index 8f775771f15..06ab1b738b6 100644
--- a/libgcc/config/lm32/_divsi3.c
+++ b/libgcc/config/lm32/_divsi3.c
@@ -1,7 +1,7 @@
/* _divsi3 for Lattice Mico32.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/lm32/_lshrsi3.S b/libgcc/config/lm32/_lshrsi3.S
index 057e60d5828..6f886f426f1 100644
--- a/libgcc/config/lm32/_lshrsi3.S
+++ b/libgcc/config/lm32/_lshrsi3.S
@@ -1,7 +1,7 @@
# _lshrsi3.S for Lattice Mico32
# Contributed by Jon Beniston <jon@beniston.com> and Richard Henderson.
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/lm32/_modsi3.c b/libgcc/config/lm32/_modsi3.c
index 08ed449c147..bd40a819059 100644
--- a/libgcc/config/lm32/_modsi3.c
+++ b/libgcc/config/lm32/_modsi3.c
@@ -1,7 +1,7 @@
/* _modsi3 for Lattice Mico32.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/lm32/_mulsi3.c b/libgcc/config/lm32/_mulsi3.c
index cafcd23d9e7..e50c78d4973 100644
--- a/libgcc/config/lm32/_mulsi3.c
+++ b/libgcc/config/lm32/_mulsi3.c
@@ -1,7 +1,7 @@
/* _mulsi3 for Lattice Mico32.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/lm32/_udivmodsi4.c b/libgcc/config/lm32/_udivmodsi4.c
index ca890692e1c..f00904f51fa 100644
--- a/libgcc/config/lm32/_udivmodsi4.c
+++ b/libgcc/config/lm32/_udivmodsi4.c
@@ -1,7 +1,7 @@
/* _udivmodsi4 for Lattice Mico32.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/lm32/_udivsi3.c b/libgcc/config/lm32/_udivsi3.c
index 55e28250ac0..64ae2a2fe6f 100644
--- a/libgcc/config/lm32/_udivsi3.c
+++ b/libgcc/config/lm32/_udivsi3.c
@@ -1,7 +1,7 @@
/* _udivsi3 for Lattice Mico32.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/lm32/_umodsi3.c b/libgcc/config/lm32/_umodsi3.c
index 45afc797300..ebdb1adb0eb 100644
--- a/libgcc/config/lm32/_umodsi3.c
+++ b/libgcc/config/lm32/_umodsi3.c
@@ -1,7 +1,7 @@
/* _umodsi3 for Lattice Mico32.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/lm32/crti.S b/libgcc/config/lm32/crti.S
index f324763cb1a..719682588dd 100644
--- a/libgcc/config/lm32/crti.S
+++ b/libgcc/config/lm32/crti.S
@@ -1,7 +1,7 @@
# crti.S for Lattice Mico32
# Contributed by Jon Beniston <jon@beniston.com>
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/lm32/crtn.S b/libgcc/config/lm32/crtn.S
index 71dfa44939f..cfb67d29a52 100644
--- a/libgcc/config/lm32/crtn.S
+++ b/libgcc/config/lm32/crtn.S
@@ -1,7 +1,7 @@
# crtn.S for Lattice Mico32
# Contributed by Jon Beniston <jon@beniston.com>
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/lm32/libgcc_lm32.h b/libgcc/config/lm32/libgcc_lm32.h
index 1daa995d9f7..943e272c5fa 100644
--- a/libgcc/config/lm32/libgcc_lm32.h
+++ b/libgcc/config/lm32/libgcc_lm32.h
@@ -1,7 +1,7 @@
/* Integer arithmetic support for Lattice Mico32.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/m32c/lib1funcs.S b/libgcc/config/m32c/lib1funcs.S
index 6d46afc7910..9762db8c685 100644
--- a/libgcc/config/m32c/lib1funcs.S
+++ b/libgcc/config/m32c/lib1funcs.S
@@ -1,5 +1,5 @@
/* libgcc routines for R8C/M16C/M32C
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/m32c/lib2funcs.c b/libgcc/config/m32c/lib2funcs.c
index cb08daf0a08..7374f9287af 100644
--- a/libgcc/config/m32c/lib2funcs.c
+++ b/libgcc/config/m32c/lib2funcs.c
@@ -1,5 +1,5 @@
/* libgcc routines for R8C/M16C/M32C
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/m32c/trapv.c b/libgcc/config/m32c/trapv.c
index d59459e1587..cada17d2bea 100644
--- a/libgcc/config/m32c/trapv.c
+++ b/libgcc/config/m32c/trapv.c
@@ -1,5 +1,5 @@
/* 16-bit trapping arithmetic routines for R8C/M16C/M32C
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/m32r/initfini.c b/libgcc/config/m32r/initfini.c
index d6ed2c8a4a5..d6385b42a8a 100644
--- a/libgcc/config/m32r/initfini.c
+++ b/libgcc/config/m32r/initfini.c
@@ -1,7 +1,7 @@
/* .init/.fini section handling + C++ global constructor/destructor handling.
This file is based on crtstuff.c, sol2-crti.S, sol2-crtn.S.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/m32r/libgcc-glibc.ver b/libgcc/config/m32r/libgcc-glibc.ver
index 6d130d67420..c4ee9ff21e3 100644
--- a/libgcc/config/m32r/libgcc-glibc.ver
+++ b/libgcc/config/m32r/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/m68k/crti.S b/libgcc/config/m68k/crti.S
index c68adf9556f..44ebb1c035d 100644
--- a/libgcc/config/m68k/crti.S
+++ b/libgcc/config/m68k/crti.S
@@ -1,6 +1,6 @@
/* Specialized code needed to support construction and destruction of
file-scope objects in C++ and Java code, and to support exception handling.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Charles-Antoine Gauthier (charles.gauthier@iit.nrc.ca).
This file is part of GCC.
diff --git a/libgcc/config/m68k/crtn.S b/libgcc/config/m68k/crtn.S
index 68b9c8dc6da..9ea22a8ef86 100644
--- a/libgcc/config/m68k/crtn.S
+++ b/libgcc/config/m68k/crtn.S
@@ -1,6 +1,6 @@
/* Specialized code needed to support construction and destruction of
file-scope objects in C++ and Java code, and to support exception handling.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Charles-Antoine Gauthier (charles.gauthier@iit.nrc.ca).
This file is part of GCC.
diff --git a/libgcc/config/m68k/lb1sf68.S b/libgcc/config/m68k/lb1sf68.S
index 325a7c17d9b..c387211221e 100644
--- a/libgcc/config/m68k/lb1sf68.S
+++ b/libgcc/config/m68k/lb1sf68.S
@@ -1,5 +1,5 @@
/* libgcc routines for 68000 w/o floating-point hardware.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/m68k/linux-atomic.c b/libgcc/config/m68k/linux-atomic.c
index 5682dbae5f9..e0f736f4b9d 100644
--- a/libgcc/config/m68k/linux-atomic.c
+++ b/libgcc/config/m68k/linux-atomic.c
@@ -1,5 +1,5 @@
/* Linux-specific atomic operations for m68k Linux.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Based on code contributed by CodeSourcery for ARM EABI Linux.
This file is part of GCC.
diff --git a/libgcc/config/m68k/linux-unwind.h b/libgcc/config/m68k/linux-unwind.h
index 395e4b3212a..57c354ee9b4 100644
--- a/libgcc/config/m68k/linux-unwind.h
+++ b/libgcc/config/m68k/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for Linux/m68k.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -37,7 +37,7 @@ struct uw_ucontext {
stack_t uc_stack;
mcontext_t uc_mcontext;
unsigned long uc_filler[80];
- __sigset_t uc_sigmask;
+ sigset_t uc_sigmask;
};
#define MD_FALLBACK_FRAME_STATE_FOR m68k_fallback_frame_state
diff --git a/libgcc/config/mcore/crti.S b/libgcc/config/mcore/crti.S
index 0fbd9d681da..fd60a0a08d4 100644
--- a/libgcc/config/mcore/crti.S
+++ b/libgcc/config/mcore/crti.S
@@ -1,6 +1,6 @@
# crti.S for ELF based systems
-# Copyright (C) 1992-2018 Free Software Foundation, Inc.
+# Copyright (C) 1992-2019 Free Software Foundation, Inc.
# Written By David Vinayak Henkel-Wallace, June 1992
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/mcore/crtn.S b/libgcc/config/mcore/crtn.S
index 6de668c0f16..f42cb5ad7ee 100644
--- a/libgcc/config/mcore/crtn.S
+++ b/libgcc/config/mcore/crtn.S
@@ -1,6 +1,6 @@
# crtn.S for ELF based systems
-# Copyright (C) 1992-2018 Free Software Foundation, Inc.
+# Copyright (C) 1992-2019 Free Software Foundation, Inc.
# Written By David Vinayak Henkel-Wallace, June 1992
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/mcore/lib1funcs.S b/libgcc/config/mcore/lib1funcs.S
index 298213930f9..7bb9a78f848 100644
--- a/libgcc/config/mcore/lib1funcs.S
+++ b/libgcc/config/mcore/lib1funcs.S
@@ -1,5 +1,5 @@
/* libgcc routines for the MCore.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/microblaze/crti.S b/libgcc/config/microblaze/crti.S
index 2e15be4f5bd..ee380ee3f63 100644
--- a/libgcc/config/microblaze/crti.S
+++ b/libgcc/config/microblaze/crti.S
@@ -1,7 +1,7 @@
/* crti.s for __init, __fini
This file supplies the prologue for __init and __fini routines
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Michael Eager <eager@eagercon.com>.
diff --git a/libgcc/config/microblaze/crtn.S b/libgcc/config/microblaze/crtn.S
index cd5fd9e4c16..00d398a0cbc 100644
--- a/libgcc/config/microblaze/crtn.S
+++ b/libgcc/config/microblaze/crtn.S
@@ -1,7 +1,7 @@
/* crtn.s for __init, __fini
This file supplies the epilogue for __init and __fini routines
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Michael Eager <eager@eagercon.com>.
diff --git a/libgcc/config/microblaze/divsi3.S b/libgcc/config/microblaze/divsi3.S
index 663d3981731..24b94b9fc12 100644
--- a/libgcc/config/microblaze/divsi3.S
+++ b/libgcc/config/microblaze/divsi3.S
@@ -1,6 +1,6 @@
###################################-
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# Contributed by Michael Eager <eager@eagercon.com>.
#
diff --git a/libgcc/config/microblaze/divsi3_table.c b/libgcc/config/microblaze/divsi3_table.c
index 45591bb02d9..41c5dfb88a3 100644
--- a/libgcc/config/microblaze/divsi3_table.c
+++ b/libgcc/config/microblaze/divsi3_table.c
@@ -1,6 +1,6 @@
/* Table for software lookup divide for Xilinx MicroBlaze.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Michael Eager <eager@eagercon.com>.
diff --git a/libgcc/config/microblaze/moddi3.S b/libgcc/config/microblaze/moddi3.S
index a8f17d7565a..abfe4fc5f26 100644
--- a/libgcc/config/microblaze/moddi3.S
+++ b/libgcc/config/microblaze/moddi3.S
@@ -1,6 +1,6 @@
###################################
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# Contributed by Michael Eager <eager@eagercon.com>.
#
diff --git a/libgcc/config/microblaze/modsi3.S b/libgcc/config/microblaze/modsi3.S
index 71b56e305e2..87372f54266 100644
--- a/libgcc/config/microblaze/modsi3.S
+++ b/libgcc/config/microblaze/modsi3.S
@@ -1,6 +1,6 @@
###################################
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# Contributed by Michael Eager <eager@eagercon.com>.
#
diff --git a/libgcc/config/microblaze/muldi3_hard.S b/libgcc/config/microblaze/muldi3_hard.S
index 3733dc39f9b..9ca33e19341 100644
--- a/libgcc/config/microblaze/muldi3_hard.S
+++ b/libgcc/config/microblaze/muldi3_hard.S
@@ -1,6 +1,6 @@
###################################-
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# Contributed by Michael Eager <eager@eagercon.com>.
#
diff --git a/libgcc/config/microblaze/mulsi3.S b/libgcc/config/microblaze/mulsi3.S
index 40b0b159e95..8c3f7884733 100644
--- a/libgcc/config/microblaze/mulsi3.S
+++ b/libgcc/config/microblaze/mulsi3.S
@@ -1,6 +1,6 @@
###################################-*-asm*-
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# Contributed by Michael Eager <eager@eagercon.com>.
#
diff --git a/libgcc/config/microblaze/stack_overflow_exit.S b/libgcc/config/microblaze/stack_overflow_exit.S
index 17c9012e2ae..5a6b8032094 100644
--- a/libgcc/config/microblaze/stack_overflow_exit.S
+++ b/libgcc/config/microblaze/stack_overflow_exit.S
@@ -1,6 +1,6 @@
###################################-*-asm*-
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
#
# Contributed by Michael Eager <eager@eagercon.com>.
diff --git a/libgcc/config/microblaze/udivsi3.S b/libgcc/config/microblaze/udivsi3.S
index 2aef8edb96f..5d726ad8b43 100644
--- a/libgcc/config/microblaze/udivsi3.S
+++ b/libgcc/config/microblaze/udivsi3.S
@@ -1,6 +1,6 @@
###################################-
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# Contributed by Michael Eager <eager@eagercon.com>.
#
diff --git a/libgcc/config/microblaze/umodsi3.S b/libgcc/config/microblaze/umodsi3.S
index a2582d03773..b29d7e13ec5 100644
--- a/libgcc/config/microblaze/umodsi3.S
+++ b/libgcc/config/microblaze/umodsi3.S
@@ -1,6 +1,6 @@
###################################
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# Contributed by Michael Eager <eager@eagercon.com>.
#
diff --git a/libgcc/config/mips/crtfastmath.c b/libgcc/config/mips/crtfastmath.c
index dc1b15cfb20..44b19098d7f 100644
--- a/libgcc/config/mips/crtfastmath.c
+++ b/libgcc/config/mips/crtfastmath.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/mips/crti.S b/libgcc/config/mips/crti.S
index 77cb9c4f937..44409c7d1c4 100644
--- a/libgcc/config/mips/crti.S
+++ b/libgcc/config/mips/crti.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/mips/crtn.S b/libgcc/config/mips/crtn.S
index 9cd66775e88..b56d77c33fe 100644
--- a/libgcc/config/mips/crtn.S
+++ b/libgcc/config/mips/crtn.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/mips/gthr-mipssde.h b/libgcc/config/mips/gthr-mipssde.h
index 3aea683679f..fbb6f8951a4 100644
--- a/libgcc/config/mips/gthr-mipssde.h
+++ b/libgcc/config/mips/gthr-mipssde.h
@@ -1,6 +1,6 @@
/* MIPS SDE threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
Contributed by Nigel Stephens <nigel@mips.com>
This file is part of GCC.
diff --git a/libgcc/config/mips/lib2funcs.c b/libgcc/config/mips/lib2funcs.c
index 02782de1bad..175a87ee5d2 100644
--- a/libgcc/config/mips/lib2funcs.c
+++ b/libgcc/config/mips/lib2funcs.c
@@ -1,5 +1,5 @@
/* libgcc routines for MIPS
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
DMULT/DDIV replacement support by Juergen Urban, JuergenUrban@gmx.de.
This file is part of GCC.
diff --git a/libgcc/config/mips/libgcc-mips16.ver b/libgcc/config/mips/libgcc-mips16.ver
index ea625efcc97..5783fadd182 100644
--- a/libgcc/config/mips/libgcc-mips16.ver
+++ b/libgcc/config/mips/libgcc-mips16.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2018 Free Software Foundation, Inc.
+# Copyright (C) 2008-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/mips/linux-unwind.h b/libgcc/config/mips/linux-unwind.h
index 63ddd5c8780..92098f3163e 100644
--- a/libgcc/config/mips/linux-unwind.h
+++ b/libgcc/config/mips/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for MIPS Linux.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/mips/mips16.S b/libgcc/config/mips/mips16.S
index 64a5a5667b7..8cfd9e47a7e 100644
--- a/libgcc/config/mips/mips16.S
+++ b/libgcc/config/mips/mips16.S
@@ -1,5 +1,5 @@
/* mips16 floating point support code
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
Contributed by Cygnus Support
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/mips/sfp-machine.h b/libgcc/config/mips/sfp-machine.h
index 777707243ee..4aa8a2ca8de 100644
--- a/libgcc/config/mips/sfp-machine.h
+++ b/libgcc/config/mips/sfp-machine.h
@@ -1,5 +1,5 @@
/* softfp machine description for MIPS.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/mips/t-mips16 b/libgcc/config/mips/t-mips16
index 511e4ff02be..384e9431bff 100644
--- a/libgcc/config/mips/t-mips16
+++ b/libgcc/config/mips/t-mips16
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2018 Free Software Foundation, Inc.
+# Copyright (C) 2007-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/mips/vr4120-div.S b/libgcc/config/mips/vr4120-div.S
index c15d8647252..7f6729dee1d 100644
--- a/libgcc/config/mips/vr4120-div.S
+++ b/libgcc/config/mips/vr4120-div.S
@@ -1,5 +1,5 @@
/* Support file for -mfix-vr4120.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/mmix/crti.S b/libgcc/config/mmix/crti.S
index 566e16ecc0a..ae4d87c7eaa 100644
--- a/libgcc/config/mmix/crti.S
+++ b/libgcc/config/mmix/crti.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Hans-Peter Nilsson <hp@bitrange.com>
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/mmix/crtn.S b/libgcc/config/mmix/crtn.S
index 0b11d5bfb2a..c7b3325cb06 100644
--- a/libgcc/config/mmix/crtn.S
+++ b/libgcc/config/mmix/crtn.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Hans-Peter Nilsson <hp@bitrange.com>
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/moxie/crti.S b/libgcc/config/moxie/crti.S
index 8935b28d08d..ea065c78965 100644
--- a/libgcc/config/moxie/crti.S
+++ b/libgcc/config/moxie/crti.S
@@ -1,6 +1,6 @@
# crti.S for moxie
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/moxie/crtn.S b/libgcc/config/moxie/crtn.S
index 03582af48e2..5df9d4aeddb 100644
--- a/libgcc/config/moxie/crtn.S
+++ b/libgcc/config/moxie/crtn.S
@@ -1,6 +1,6 @@
# crtn.S for moxie
#
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/msp430/cmpsi2.S b/libgcc/config/msp430/cmpsi2.S
index f5419495258..2411f63ed24 100644
--- a/libgcc/config/msp430/cmpsi2.S
+++ b/libgcc/config/msp430/cmpsi2.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2018 Free Software Foundation, Inc.
+; Copyright (C) 2012-2019 Free Software Foundation, Inc.
; Contributed by Red Hat.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/msp430/epilogue.S b/libgcc/config/msp430/epilogue.S
index c265c43691b..a62730d466e 100644
--- a/libgcc/config/msp430/epilogue.S
+++ b/libgcc/config/msp430/epilogue.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2018 Free Software Foundation, Inc.
+; Copyright (C) 2012-2019 Free Software Foundation, Inc.
; Contributed by Red Hat.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/msp430/lib2bitcountHI.c b/libgcc/config/msp430/lib2bitcountHI.c
index 3b73d5cf389..8b6b0e49d30 100644
--- a/libgcc/config/msp430/lib2bitcountHI.c
+++ b/libgcc/config/msp430/lib2bitcountHI.c
@@ -1,5 +1,5 @@
/* libgcc routines for MSP430
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/msp430/lib2divHI.c b/libgcc/config/msp430/lib2divHI.c
index 7714ec1234c..d82f580c453 100644
--- a/libgcc/config/msp430/lib2divHI.c
+++ b/libgcc/config/msp430/lib2divHI.c
@@ -1,5 +1,5 @@
/* HI mode divide routines for libgcc for MSP430
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/msp430/lib2divQI.c b/libgcc/config/msp430/lib2divQI.c
index dc5f12bfe1a..73320d177f6 100644
--- a/libgcc/config/msp430/lib2divQI.c
+++ b/libgcc/config/msp430/lib2divQI.c
@@ -1,5 +1,5 @@
/* QI mode divide routines for libgcc for MSP430
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/msp430/lib2divSI.c b/libgcc/config/msp430/lib2divSI.c
index 48f8c148ed2..fd45c540317 100644
--- a/libgcc/config/msp430/lib2divSI.c
+++ b/libgcc/config/msp430/lib2divSI.c
@@ -1,5 +1,5 @@
/* SI mode divide routines for libgcc for MSP430
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/msp430/lib2hw_mul.S b/libgcc/config/msp430/lib2hw_mul.S
index 833edc142ab..894c551cbf0 100644
--- a/libgcc/config/msp430/lib2hw_mul.S
+++ b/libgcc/config/msp430/lib2hw_mul.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2014-2018 Free Software Foundation, Inc.
+; Copyright (C) 2014-2019 Free Software Foundation, Inc.
; Contributed by Red Hat.
;
; This file is free software; you can redistribute it and/or modify it
@@ -81,9 +81,9 @@
.type \gcc_name , @function
\gcc_name:
#ifdef __MSP430X_LARGE__
- BRA \eabi_soft_name
+ BRA #\eabi_soft_name
#else
- BR \eabi_soft_name
+ BR #\eabi_soft_name
#endif
.size \gcc_name , . - \gcc_name
.popsection
@@ -109,7 +109,7 @@
MOV.W &\RESULT, r12 ; Move result into return register
.endm
-.macro mult1632 OP1, OP2, RESULT_LO, RESULT_HI
+.macro mult1632 OP1, OP2, RESLO, RESHI
;* * 16-bit hardware multiply with a 32-bit result:
;* int32 = int16 * int16
;* uint32 = uint16 * uint16
@@ -127,11 +127,11 @@
MOV.W r12, &\OP1 ; Load operand 1 into multiplier
MOV.W r13, &\OP2 ; Load operand 2 which triggers MPY
- MOV.W &\RESULT_LO, r12 ; Move low result into return register
- MOV.W &\RESULT_HI, r13 ; Move high result into return register
+ MOV.W &\RESLO, r12 ; Move low result into return register
+ MOV.W &\RESHI, r13 ; Move high result into return register
.endm
-.macro mult32 OP1, OP2, MAC_OP1, MAC_OP2, RESULT_LO, RESULT_HI
+.macro mult32 OP1, OP2, MAC_OP1, MAC_OP2, RESLO, RESHI
;* * 32-bit hardware multiply with a 32-bit result using 16 multiply and accumulate:
;* int32 = int32 * int32
;*
@@ -149,16 +149,16 @@
MOV.W r12, &\OP1 ; Load operand 1 Low into multiplier
MOV.W r14, &\OP2 ; Load operand 2 Low which triggers MPY
MOV.W r12, &\MAC_OP1 ; Load operand 1 Low into mac
- MOV.W &\RESULT_LO, r12 ; Low 16-bits of result ready for return
- MOV.W &\RESULT_HI, &\RESULT_LO; MOV intermediate mpy high into low
+ MOV.W &\RESLO, r12 ; Low 16-bits of result ready for return
+ MOV.W &\RESHI, &\RESLO ; MOV intermediate mpy high into low
MOV.W r15, &\MAC_OP2 ; Load operand 2 High, trigger MAC
MOV.W r13, &\MAC_OP1 ; Load operand 1 High
MOV.W r14, &\MAC_OP2 ; Load operand 2 Lo, trigger MAC
- MOV.W &\RESULT_LO, r13 ; Upper 16-bits result ready for return
+ MOV.W &\RESLO, r13 ; Upper 16-bits result ready for return
.endm
-.macro mult32_hw OP1_LO OP1_HI OP2_LO OP2_HI RESULT_LO RESULT_HI
+.macro mult32_hw OP1_LO OP1_HI OP2_LO OP2_HI RESLO RESHI
;* * 32-bit hardware multiply with a 32-bit result
;* int32 = int32 * int32
;*
@@ -177,8 +177,8 @@
MOV.W r13, &\OP1_HI ; Load operand 1 High into multiplier
MOV.W r14, &\OP2_LO ; Load operand 2 Low into multiplier
MOV.W r15, &\OP2_HI ; Load operand 2 High, trigger MPY
- MOV.W &\RESULT_LO, r12 ; Ready low 16-bits for return
- MOV.W &\RESULT_HI, r13 ; Ready high 16-bits for return
+ MOV.W &\RESLO, r12 ; Ready low 16-bits for return
+ MOV.W &\RESHI, r13 ; Ready high 16-bits for return
.endm
.macro mult3264_hw OP1_LO OP1_HI OP2_LO OP2_HI RES0 RES1 RES2 RES3
@@ -264,105 +264,141 @@
;; Multiply unsigned long by unsigned long; result is unsigned long long. Uses hardware MPY16
;; uint64 __mspabi_mpyull_hw32(uint32 x, uint32 y)
;; Multiply unsigned long by unsigned long; result is unsigned long long. Uses hardware MPY32 (F4xx devices).
-;; uint64 _ _mspabi_mpyull_f5hw(uint32 x, uint32 y)
+;; uint64 __mspabi_mpyull_f5hw(uint32 x, uint32 y)
;; Multiply unsigned long by unsigned long; result is unsigned long long. Uses hardware MPY32 (F5xx devices and up)
-
-
-.set MPY_OP1, 0x0130
-.set MPY_OP1_S, 0x0132
-.set MAC_OP1, 0x0134
-.set MPY_OP2, 0x0138
-.set MAC_OP2, 0x0138
-.set RESULT_LO, 0x013A
-.set RESULT_HI, 0x013C
+;;;; The register names below are the standardised versions used across TI
+;;;; literature.
+
+;; Hardware multiply register addresses for devices with 16-bit hardware
+;; multiply.
+.set MPY, 0x0130
+.set MPYS, 0x0132
+.set MAC, 0x0134
+.set OP2, 0x0138
+.set RESLO, 0x013A
+.set RESHI, 0x013C
+;; Hardware multiply register addresses for devices with 32-bit (non-f5)
+;; hardware multiply.
+.set MPY32L, 0x0140
+.set MPY32H, 0x0142
+.set MPYS32L, 0x0144
+.set MPYS32H, 0x0146
+.set OP2L, 0x0150
+.set OP2H, 0x0152
+.set RES0, 0x0154
+.set RES1, 0x0156
+.set RES2, 0x0158
+.set RES3, 0x015A
+;; Hardware multiply register addresses for devices with f5series hardware
+;; multiply.
+;; The F5xxx series of MCUs support the same 16-bit and 32-bit multiply
+;; as the second generation hardware, but they are accessed from different
+;; memory registers.
+;; These names AREN'T standard. We've appended _F5 to the standard names.
+.set MPY_F5, 0x04C0
+.set MPYS_F5, 0x04C2
+.set MAC_F5, 0x04C4
+.set OP2_F5, 0x04C8
+.set RESLO_F5, 0x04CA
+.set RESHI_F5, 0x04CC
+.set MPY32L_F5, 0x04D0
+.set MPY32H_F5, 0x04D2
+.set MPYS32L_F5, 0x04D4
+.set MPYS32H_F5, 0x04D6
+.set OP2L_F5, 0x04E0
+.set OP2H_F5, 0x04E2
+.set RES0_F5, 0x04E4
+.set RES1_F5, 0x04E6
+.set RES2_F5, 0x04E8
+.set RES3_F5, 0x04EA
#if defined MUL_16
;; First generation MSP430 hardware multiplies ...
start_func __mulhi2 __mspabi_mpyi __mspabi_mpyi_hw
- mult16 MPY_OP1, MPY_OP2, RESULT_LO
+ mult16 MPY, OP2, RESLO
end_func __mulhi2
- start_func __mulsihi2 __mspabi_mpysl __mspabi_mpysl_hw
- mult1632 MPY_OP1_S, MPY_OP2, RESULT_LO, RESULT_HI
- end_func __mulsihi2
+ start_func __mulhisi2 __mspabi_mpysl __mspabi_mpysl_hw
+ mult1632 MPYS, OP2, RESLO, RESHI
+ end_func __mulhisi2
- start_func __umulsihi2 __mspabi_mpyul _mspabi_mpyul_hw
- mult1632 MPY_OP1, MPY_OP2, RESULT_LO, RESULT_HI
- end_func __umulsihi2
+ start_func __umulhisi2 __mspabi_mpyul __mspabi_mpyul_hw
+ mult1632 MPY, OP2, RESLO, RESHI
+ end_func __umulhisi2
start_func __mulsi2 __mspabi_mpyl __mspabi_mpyl_hw
- mult32 MPY_OP1, MPY_OP2, MAC_OP1, MAC_OP2, RESULT_LO, RESULT_HI
+ mult32 MPY, OP2, MAC, OP2, RESLO, RESHI
end_func __mulsi2
;; FIXME: We do not have hardware implementations of these
;; routines, so just jump to the software versions instead.
- fake_func __muldisi2 __mspabi_mpysll __mspabi_mpysll_hw
- fake_func __umuldisi2 __mspabi_mpyull __mspabi_mpyull_hw
- fake_func __muldi3 __mspabi_mpyll __mspabi_mpyll_hw
+ fake_func __mulsidi2 __mspabi_mpysll __mspabi_mpysll_hw
+ fake_func __umulsidi2 __mspabi_mpyull __mspabi_mpyull_hw
+ fake_func __muldi3 __mspabi_mpyll __mspabi_mpyll_hw
#elif defined MUL_32
;; Second generation MSP430 hardware multiplies ...
start_func __mulhi2 __mspabi_mpyi __mspabi_mpyi_hw
- mult16 MPY_OP1, MPY_OP2, RESULT_LO
+ mult16 MPY, OP2, RESLO
end_func __mulhi2
- start_func __mulsihi2 __mspabi_mpysl __mspabi_mpysl_hw
- mult1632 MPY_OP1_S, MPY_OP2, RESULT_LO, RESULT_HI
- end_func __mulsihi2
+ start_func __mulhisi2 __mspabi_mpysl __mspabi_mpysl_hw
+ mult1632 MPYS, OP2, RESLO, RESHI
+ end_func __mulhisi2
- start_func __umulsihi2 __mspabi_mpyul _mspabi_mpyul_hw
- mult1632 MPY_OP1, MPY_OP2, RESULT_LO, RESULT_HI
- end_func __umulsihi2
+ start_func __umulhisi2 __mspabi_mpyul __mspabi_mpyul_hw
+ mult1632 MPY, OP2, RESLO, RESHI
+ end_func __umulhisi2
start_func __mulsi2_hw32 __mspabi_mpyl __mspabi_mpyl_hw32
- mult32_hw 0x0140, 0x0142, 0x0150, 0x0152, 0x0154, 0x0156
+ mult32_hw MPY32L, MPY32H, OP2L, OP2H, RES0, RES1
end_func __mulsi2_hw32
- start_func __muldisi2 __mspabi_mpysll __mspabi_mpysll_hw32
- mult3264_hw 0x0144, 0x146, 0x0150, 0x0152, 0x0154, 0x0156, 0x0158, 0x015A
- end_func __muldisi2
+ start_func __mulsidi2 __mspabi_mpysll __mspabi_mpysll_hw32
+ mult3264_hw MPYS32L, MPYS32H, OP2L, OP2H, RES0, RES1, RES2, RES3
+ end_func __mulsidi2
- start_func __umuldisi2 __mspabi_mpyull __mspabi_mpyull_hw32
- mult3264_hw 0x0140, 0x142, 0x0150, 0x0152, 0x0154, 0x0156, 0x0158, 0x015A
- end_func __umuldisi2
+ start_func __umulsidi2 __mspabi_mpyull __mspabi_mpyull_hw32
+ mult3264_hw MPY32L, MPY32H, OP2L, OP2H, RES0, RES1, RES2, RES3
+ end_func __umulsidi2
;; FIXME: Add a hardware version of this function.
- fake_func __muldi3 __mspabi_mpyll __mspabi_mpyll_hw32
-
+ fake_func __muldi3 __mspabi_mpyll __mspabi_mpyll_hw32
+
#elif defined MUL_F5
/* The F5xxx series of MCUs support the same 16-bit and 32-bit multiply
as the second generation hardware, but they are accessed from different
memory registers. */
start_func __mulhi2_f5 __mspabi_mpyi __mspabi_mpyi_f5hw
- mult16 0x04C0, 0x04C8, 0x04CA
+ mult16 MPY_F5, OP2_F5, RESLO_F5
end_func __mulhi2_f5
- start_func __mulsihi2 __mspabi_mpysl __mspabi_mpysl_f5hw
- mult1632 0x04C2, 0x04C8, 0x04CA, 0x04CC
- end_func __mulsihi2
-
- start_func __umulsihi2 __mspabi_mpyul _mspabi_mpyul_f5hw
- mult1632 0x04C0, 0x04C8, 0x04CA, 0x04CC
- end_func __umulsihi2
+ start_func __mulhisi2 __mspabi_mpysl __mspabi_mpysl_f5hw
+ mult1632 MPYS_F5, OP2_F5, RESLO_F5, RESHI_F5
+ end_func __mulhisi2
+
+ start_func __umulhisi2 __mspabi_mpyul __mspabi_mpyul_f5hw
+ mult1632 MPY_F5, OP2_F5, RESLO_F5, RESHI_F5
+ end_func __umulhisi2
start_func __mulsi2_f5 __mspabi_mpyl __mspabi_mpyl_f5hw
- mult32_hw 0x04D0, 0x04D2, 0x04E0, 0x04E2, 0x04E4, 0x04E6
+ mult32_hw MPY32L_F5, MPY32H_F5, OP2L_F5, OP2H_F5, RES0_F5, RES1_F5
end_func __mulsi2_f5
-
- start_func __muldisi2 __mspabi_mpysll __mspabi_mpysll_f5hw
- mult3264_hw 0x04D4, 0x04D6, 0x04E0, 0x04E2, 0x04E4, 0x04E6, 0x04E8, 0x04EA
- end_func __muldisi2
-
- start_func __umuldisi2 __mspabi_mpyull __mspabi_mpyull_f5hw
- mult3264_hw 0x04D0, 0x04D2, 0x04E0, 0x04E2, 0x04E4, 0x04E6, 0x04E8, 0x04EA
- end_func __umuldisi2
+
+ start_func __mulsidi2 __mspabi_mpysll __mspabi_mpysll_f5hw
+ mult3264_hw MPYS32L_F5, MPYS32H_F5, OP2L_F5, OP2H_F5, RES0_F5, RES1_F5, RES2_F5, RES3_F5
+ end_func __mulsidi2
+
+ start_func __umulsidi2 __mspabi_mpyull __mspabi_mpyull_f5hw
+ mult3264_hw MPY32L_F5, MPY32H_F5, OP2L_F5, OP2H_F5, RES0_F5, RES1_F5, RES2_F5, RES3_F5
+ end_func __umulsidi2
;; FIXME: Add a hardware version of this function.
- fake_func __muldi3 __mspabi_mpyll __mspabi_mpyll_f5hw
+ fake_func __muldi3 __mspabi_mpyll __mspabi_mpyll_f5hw
#else
#error MUL type not defined
diff --git a/libgcc/config/msp430/lib2mul.c b/libgcc/config/msp430/lib2mul.c
index 37afbf821e7..95a2f1a7e30 100644
--- a/libgcc/config/msp430/lib2mul.c
+++ b/libgcc/config/msp430/lib2mul.c
@@ -1,5 +1,5 @@
/* libgcc routines for MSP430
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
@@ -46,6 +46,9 @@ typedef unsigned int uint08_type __attribute__ ((mode (QI)));
#elif defined MUL_16
+/* The 16-bit multiply library needs a software version of SI->DI widening
+ multiplication. */
+
signed long long
__mspabi_mpysll (signed long a, signed long b)
{
diff --git a/libgcc/config/msp430/lib2shift.c b/libgcc/config/msp430/lib2shift.c
index 776b0ff08e6..3392e5c227b 100644
--- a/libgcc/config/msp430/lib2shift.c
+++ b/libgcc/config/msp430/lib2shift.c
@@ -1,5 +1,5 @@
/* Shift functions for the GCC support library for the MSP430
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/msp430/msp430-divmod.h b/libgcc/config/msp430/msp430-divmod.h
index 7e8dfd543b8..bdb0d84b63f 100644
--- a/libgcc/config/msp430/msp430-divmod.h
+++ b/libgcc/config/msp430/msp430-divmod.h
@@ -1,5 +1,5 @@
/* libgcc routines for MSP430
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/msp430/msp430-mul.h b/libgcc/config/msp430/msp430-mul.h
index 5aa0984aa7f..ebe030bc48c 100644
--- a/libgcc/config/msp430/msp430-mul.h
+++ b/libgcc/config/msp430/msp430-mul.h
@@ -1,5 +1,5 @@
/* libgcc routines for RL78
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/msp430/slli.S b/libgcc/config/msp430/slli.S
index e11681fe01d..9210fe6e934 100644
--- a/libgcc/config/msp430/slli.S
+++ b/libgcc/config/msp430/slli.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2018 Free Software Foundation, Inc.
+; Copyright (C) 2012-2019 Free Software Foundation, Inc.
; Contributed by Red Hat.
;
; This file is free software; you can redistribute it and/or modify it
@@ -22,8 +22,9 @@
.text
-/* Logical Left Shift - R12 -> R12 */
+/* Logical Left Shift - R12 -> R12. */
+ .section .text.__mspabi_slli_n
.macro _slli n
.global __mspabi_slli_\n
__mspabi_slli_\n:
@@ -51,6 +52,7 @@ __mspabi_slli_\n:
RET
#endif
+ .section .text.__mspabi_slli
1: ADD.W #-1,R13
ADD.W R12,R12
.global __mspabi_slli
@@ -63,8 +65,9 @@ __mspabi_slli:
RET
#endif
-/* Logical Left Shift - R12:R13 -> R12:R13 */
+/* Logical Left Shift - R12:R13 -> R12:R13. */
+ .section .text.__mspabi_slll_n
.macro _slll n
.global __mspabi_slll_\n
__mspabi_slll_\n:
@@ -93,6 +96,7 @@ __mspabi_slll_\n:
RET
#endif
+ .section .text.__mspabi_slll
1: ADD.W #-1,R14
ADD.W R12,R12
ADDC.W R13,R13
@@ -106,3 +110,36 @@ __mspabi_slll:
RET
#endif
+/* Logical Left Shift - R8:R11 -> R12:R15
+ A 64-bit argument would normally be passed in R12:R15, but __mspabi_sllll has
+ special conventions, so the 64-bit value to shift is passed in R8:R11.
+ According to the MSPABI, the shift amount is a 64-bit value in R12:R15, but
+ we only use the low word in R12. */
+
+ .section .text.__mspabi_sllll
+ .global __mspabi_sllll
+__mspabi_sllll:
+ MOV R11, R15 ; Free up R11 first
+ MOV R12, R11 ; Save the shift amount in R11
+ MOV R10, R14
+ MOV R9, R13
+ MOV R8, R12
+ CMP #0,R11
+ JNZ 1f
+#ifdef __MSP430X_LARGE__
+ RETA
+#else
+ RET
+#endif
+1:
+ RLA R12
+ RLC R13
+ RLC R14
+ RLC R15
+ ADD #-1,R11
+ JNZ 1b
+#ifdef __MSP430X_LARGE__
+ RETA
+#else
+ RET
+#endif
diff --git a/libgcc/config/msp430/srai.S b/libgcc/config/msp430/srai.S
index 1909330bd5e..ed5c6a5ad7c 100644
--- a/libgcc/config/msp430/srai.S
+++ b/libgcc/config/msp430/srai.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2018 Free Software Foundation, Inc.
+; Copyright (C) 2012-2019 Free Software Foundation, Inc.
; Contributed by Red Hat.
;
; This file is free software; you can redistribute it and/or modify it
@@ -22,13 +22,14 @@
.text
+ .section .text.__mspabi_srai_n
.macro _srai n
.global __mspabi_srai_\n
__mspabi_srai_\n:
RRA.W R12
.endm
-/* Logical Right Shift - R12 -> R12 */
+/* Arithmetic Right Shift - R12 -> R12. */
_srai 15
_srai 14
_srai 13
@@ -50,6 +51,7 @@ __mspabi_srai_\n:
RET
#endif
+ .section .text.__mspabi_srai
1: ADD.W #-1,R13
RRA.W R12,R12
.global __mspabi_srai
@@ -62,8 +64,9 @@ __mspabi_srai:
RET
#endif
-/* Logical Right Shift - R12:R13 -> R12:R13 */
+/* Arithmetic Right Shift - R12:R13 -> R12:R13. */
+ .section .text.__mspabi_sral_n
.macro _sral n
.global __mspabi_sral_\n
__mspabi_sral_\n:
@@ -92,6 +95,7 @@ __mspabi_sral_\n:
RET
#endif
+ .section .text.__mspabi_sral
1: ADD.W #-1,R14
RRA.W R13
RRC.W R12
@@ -104,3 +108,37 @@ __mspabi_sral:
#else
RET
#endif
+
+/* Arithmetic Right Shift - R8:R11 -> R12:R15
+ A 64-bit argument would normally be passed in R12:R15, but __mspabi_srall has
+ special conventions, so the 64-bit value to shift is passed in R8:R11.
+ According to the MSPABI, the shift amount is a 64-bit value in R12:R15, but
+ we only use the low word in R12. */
+
+ .section .text.__mspabi_srall
+ .global __mspabi_srall
+__mspabi_srall:
+ MOV R11, R15 ; Free up R11 first
+ MOV R12, R11 ; Save the shift amount in R11
+ MOV R10, R14
+ MOV R9, R13
+ MOV R8, R12
+ CMP #0, R11
+ JNZ 1f
+#ifdef __MSP430X_LARGE__
+ RETA
+#else
+ RET
+#endif
+1:
+ RRA R15
+ RRC R14
+ RRC R13
+ RRC R12
+ ADD #-1,R11
+ JNZ 1b
+#ifdef __MSP430X_LARGE__
+ RETA
+#else
+ RET
+#endif
diff --git a/libgcc/config/msp430/srli.S b/libgcc/config/msp430/srli.S
index f2ee4ea8dce..bc1b034e4b9 100644
--- a/libgcc/config/msp430/srli.S
+++ b/libgcc/config/msp430/srli.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2018 Free Software Foundation, Inc.
+; Copyright (C) 2012-2019 Free Software Foundation, Inc.
; Contributed by Red Hat.
;
; This file is free software; you can redistribute it and/or modify it
@@ -22,6 +22,7 @@
.text
+ .section .text.__mspabi_srli_n
.macro _srli n
.global __mspabi_srli_\n
__mspabi_srli_\n:
@@ -29,7 +30,7 @@ __mspabi_srli_\n:
RRC.W R12
.endm
-/* Logical Right Shift - R12 -> R12 */
+/* Logical Right Shift - R12 -> R12. */
_srli 15
_srli 14
_srli 13
@@ -51,6 +52,7 @@ __mspabi_srli_\n:
RET
#endif
+ .section .text.__mspabi_srli
1: ADD.W #-1,R13
CLRC
RRC.W R12,R12
@@ -64,8 +66,9 @@ __mspabi_srli:
RET
#endif
-/* Logical Right Shift - R12:R13 -> R12:R13 */
+/* Logical Right Shift - R12:R13 -> R12:R13. */
+ .section .text.__mspabi_srll_n
.macro _srll n
.global __mspabi_srll_\n
__mspabi_srll_\n:
@@ -95,6 +98,7 @@ __mspabi_srll_\n:
RET
#endif
+ .section .text.__mspabi_srll
1: ADD.W #-1,R14
CLRC
RRC.W R13
@@ -108,3 +112,38 @@ __mspabi_srll:
#else
RET
#endif
+
+/* Logical Right Shift - R8:R11 -> R12:R15
+ A 64-bit argument would normally be passed in R12:R15, but __mspabi_srlll has
+ special conventions, so the 64-bit value to shift is passed in R8:R11.
+ According to the MSPABI, the shift amount is a 64-bit value in R12:R15, but
+ we only use the low word in R12. */
+
+ .section .text.__mspabi_srlll
+ .global __mspabi_srlll
+__mspabi_srlll:
+ MOV R11, R15 ; Free up R11 first
+ MOV R12, R11 ; Save the shift amount in R11
+ MOV R10, R14
+ MOV R9, R13
+ MOV R8, R12
+ CMP #0,R11
+ JNZ 1f
+#ifdef __MSP430X_LARGE__
+ RETA
+#else
+ RET
+#endif
+1:
+ CLRC
+ RRC R15
+ RRC R14
+ RRC R13
+ RRC R12
+ ADD #-1,R11
+ JNZ 1b
+#ifdef __MSP430X_LARGE__
+ RETA
+#else
+ RET
+#endif
diff --git a/libgcc/config/msp430/t-msp430 b/libgcc/config/msp430/t-msp430
index 4f5c1c4b107..17d85b6cb23 100644
--- a/libgcc/config/msp430/t-msp430
+++ b/libgcc/config/msp430/t-msp430
@@ -1,5 +1,5 @@
# Makefile fragment for building LIBGCC for the TI MSP430 processor.
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2019 Free Software Foundation, Inc.
# Contributed by Red Hat.
#
# This file is part of GCC.
diff --git a/libgcc/config/nds32/crtzero.S b/libgcc/config/nds32/crtzero.S
index dcda3992565..f6312886f85 100644
--- a/libgcc/config/nds32/crtzero.S
+++ b/libgcc/config/nds32/crtzero.S
@@ -1,5 +1,5 @@
/* The startup code sample of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/initfini.c b/libgcc/config/nds32/initfini.c
index 49ca44fa659..f46c59445d1 100644
--- a/libgcc/config/nds32/initfini.c
+++ b/libgcc/config/nds32/initfini.c
@@ -1,7 +1,7 @@
/* .init/.fini section handling + C++ global constructor/destructor
handling of Andes NDS32 cpu for GNU compiler.
This file is based on crtstuff.c, sol2-crti.asm, sol2-crtn.asm.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -25,6 +25,10 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include <stddef.h>
+/* Need header file for `struct object' type. */
+#include "../libgcc/unwind-dw2-fde.h"
+
/* Declare a pointer to void function type. */
typedef void (*func_ptr) (void);
@@ -42,11 +46,59 @@ typedef void (*func_ptr) (void);
refer to only the __CTOR_END__ symbol in crtfini.o and the __DTOR_LIST__
symbol in crtinit.o, where they are defined. */
-static func_ptr __CTOR_LIST__[1] __attribute__ ((section (".ctors")))
- = { (func_ptr) (-1) };
+static func_ptr __CTOR_LIST__[1] __attribute__ ((section (".ctors"), used))
+ = { (func_ptr) 0 };
+
+static func_ptr __DTOR_LIST__[1] __attribute__ ((section (".dtors"), used))
+ = { (func_ptr) 0 };
+
+
+#ifdef SUPPORT_UNWINDING_DWARF2
+/* Preparation of exception handling with dwar2 mechanism registration. */
-static func_ptr __DTOR_LIST__[1] __attribute__ ((section (".dtors")))
- = { (func_ptr) (-1) };
+asm ("\n\
+ .section .eh_frame,\"aw\",@progbits\n\
+ .global __EH_FRAME_BEGIN__\n\
+ .type __EH_FRAME_BEGIN__, @object\n\
+ .align 2\n\
+__EH_FRAME_BEGIN__:\n\
+ ! Beginning location of eh_frame section\n\
+ .previous\n\
+");
+
+extern func_ptr __EH_FRAME_BEGIN__[];
+
+
+/* Note that the following two functions are going to be chained into
+ constructor and destructor list, repectively. So these two declarations
+ must be placed after __CTOR_LIST__ and __DTOR_LIST. */
+extern void __nds32_register_eh(void) __attribute__((constructor, used));
+extern void __nds32_deregister_eh(void) __attribute__((destructor, used));
+
+/* Register the exception handling table as the first constructor. */
+void
+__nds32_register_eh (void)
+{
+ static struct object object;
+ if (__register_frame_info)
+ __register_frame_info (__EH_FRAME_BEGIN__, &object);
+}
+
+/* Unregister the exception handling table as a deconstructor. */
+void
+__nds32_deregister_eh (void)
+{
+ static int completed = 0;
+
+ if (completed)
+ return;
+
+ if (__deregister_frame_info)
+ __deregister_frame_info (__EH_FRAME_BEGIN__);
+
+ completed = 1;
+}
+#endif
/* Run all the global destructors on exit from the program. */
@@ -63,7 +115,7 @@ static func_ptr __DTOR_LIST__[1] __attribute__ ((section (".dtors")))
same particular root executable or shared library file. */
static void __do_global_dtors (void)
-asm ("__do_global_dtors") __attribute__ ((section (".text")));
+asm ("__do_global_dtors") __attribute__ ((section (".text"), used));
static void
__do_global_dtors (void)
@@ -116,23 +168,37 @@ void *__dso_handle = 0;
last, these words naturally end up at the very ends of the two lists
contained in these two sections. */
-static func_ptr __CTOR_END__[1] __attribute__ ((section (".ctors")))
+static func_ptr __CTOR_END__[1] __attribute__ ((section (".ctors"), used))
= { (func_ptr) 0 };
-static func_ptr __DTOR_END__[1] __attribute__ ((section (".dtors")))
+static func_ptr __DTOR_END__[1] __attribute__ ((section (".dtors"), used))
= { (func_ptr) 0 };
+#ifdef SUPPORT_UNWINDING_DWARF2
+/* ZERO terminator in .eh_frame section. */
+asm ("\n\
+ .section .eh_frame,\"aw\",@progbits\n\
+ .global __EH_FRAME_END__\n\
+ .type __EH_FRAME_END__, @object\n\
+ .align 2\n\
+__EH_FRAME_END__:\n\
+ ! End location of eh_frame section with ZERO terminator\n\
+ .word 0\n\
+ .previous\n\
+");
+#endif
+
/* Run all global constructors for the program.
Note that they are run in reverse order. */
static void __do_global_ctors (void)
-asm ("__do_global_ctors") __attribute__ ((section (".text")));
+asm ("__do_global_ctors") __attribute__ ((section (".text"), used));
static void
__do_global_ctors (void)
{
func_ptr *p;
- for (p = __CTOR_END__ - 1; *p != (func_ptr) -1; p--)
+ for (p = __CTOR_END__ - 1; *p; p--)
(*p) ();
}
diff --git a/libgcc/config/nds32/isr-library/adj_intr_lvl.inc b/libgcc/config/nds32/isr-library/adj_intr_lvl.inc
index 5cc1a6fc88a..38b350f058f 100644
--- a/libgcc/config/nds32/isr-library/adj_intr_lvl.inc
+++ b/libgcc/config/nds32/isr-library/adj_intr_lvl.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -26,13 +26,26 @@
.macro ADJ_INTR_LVL
#if defined(NDS32_NESTED) /* Nested handler. */
mfsr $r3, $PSW
+ /* By substracting 1 from $PSW, we can lower PSW.INTL
+ and enable GIE simultaneously. */
addi $r3, $r3, #-0x1
+ #if __NDS32_EXT_ZOL__ || __NDS32_EXT_DSP__
+ ori $r3, $r3, 0x2000 /* Set PSW.AEN(b'13) */
+ #endif
mtsr $r3, $PSW
#elif defined(NDS32_NESTED_READY) /* Nested ready handler. */
/* Save ipc and ipsw and lower INT level. */
mfsr $r3, $PSW
addi $r3, $r3, #-0x2
+ #if __NDS32_EXT_ZOL__ || __NDS32_EXT_DSP__
+ ori $r3, $r3, 0x2000 /* Set PSW.AEN(b'13) */
+ #endif
mtsr $r3, $PSW
#else /* Not nested handler. */
+ #if __NDS32_EXT_ZOL__ || __NDS32_EXT_DSP__
+ mfsr $r3, $PSW
+ ori $r3, $r3, 0x2000 /* Set PSW.AEN(b'13) */
+ mtsr $r3, $PSW
+ #endif
#endif
.endm
diff --git a/libgcc/config/nds32/isr-library/excp_isr.S b/libgcc/config/nds32/isr-library/excp_isr.S
index f24f856e6ee..23040f92e51 100644
--- a/libgcc/config/nds32/isr-library/excp_isr.S
+++ b/libgcc/config/nds32/isr-library/excp_isr.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -23,6 +23,7 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "save_usr_regs.inc"
#include "save_mac_regs.inc"
#include "save_fpu_regs.inc"
#include "save_fpu_regs_00.inc"
@@ -32,35 +33,33 @@
#include "save_all.inc"
#include "save_partial.inc"
#include "adj_intr_lvl.inc"
-#include "restore_mac_regs.inc"
#include "restore_fpu_regs_00.inc"
#include "restore_fpu_regs_01.inc"
#include "restore_fpu_regs_02.inc"
#include "restore_fpu_regs_03.inc"
#include "restore_fpu_regs.inc"
+#include "restore_mac_regs.inc"
+#include "restore_usr_regs.inc"
#include "restore_all.inc"
#include "restore_partial.inc"
+
.section .nds32_isr, "ax" /* Put it in the section of 1st level handler. */
.align 1
-/*
- First Level Handlers
- 1. First Level Handlers are invokded in vector section via jump instruction
- with specific names for different configurations.
- 2. Naming Format: _nds32_e_SR_NT for exception handlers.
- _nds32_i_SR_NT for interrupt handlers.
- 2.1 All upper case letters are replaced with specific lower case letters encodings.
- 2.2 SR: Saved Registers
- sa: Save All regs (context)
- ps: Partial Save (all caller-saved regs)
- 2.3 NT: Nested Type
- ns: nested
- nn: not nested
- nr: nested ready
-*/
-
-/*
- This is original 16-byte vector size version.
-*/
+
+/* First Level Handlers
+ 1. First Level Handlers are invokded in vector section via jump instruction
+ with specific names for different configurations.
+ 2. Naming Format: _nds32_e_SR_NT for exception handlers.
+ _nds32_i_SR_NT for interrupt handlers.
+ 2.1 All upper case letters are replaced with specific lower case letters encodings.
+ 2.2 SR -- Saved Registers
+ sa: Save All regs (context)
+ ps: Partial Save (all caller-saved regs)
+ 2.3 NT -- Nested Type
+ ns: nested
+ nn: not nested
+ nr: nested ready */
+
#ifdef NDS32_SAVE_ALL_REGS
#if defined(NDS32_NESTED)
.globl _nds32_e_sa_ns
@@ -91,21 +90,26 @@ _nds32_e_ps_nn:
#endif /* endif for Nest Type */
#endif /* not NDS32_SAVE_ALL_REGS */
-/*
- This is 16-byte vector size version.
- The vector id was restored into $r0 in vector by compiler.
-*/
+
+/* For 4-byte vector size version, the vector id is
+ extracted from $ITYPE and is set into $r0 by library.
+ For 16-byte vector size version, the vector id
+ is set into $r0 in vector section by compiler. */
+
+/* Save used registers. */
#ifdef NDS32_SAVE_ALL_REGS
SAVE_ALL
#else
SAVE_PARTIAL
#endif
+
/* Prepare to call 2nd level handler. */
la $r2, _nds32_jmptbl_00
lw $r2, [$r2 + $r0 << #2]
ADJ_INTR_LVL /* Adjust INTR level. $r3 is clobbered. */
jral $r2
- /* Restore used registers. */
+
+/* Restore used registers. */
#ifdef NDS32_SAVE_ALL_REGS
RESTORE_ALL
#else
@@ -113,6 +117,7 @@ _nds32_e_ps_nn:
#endif
iret
+
#ifdef NDS32_SAVE_ALL_REGS
#if defined(NDS32_NESTED)
.size _nds32_e_sa_ns, .-_nds32_e_sa_ns
diff --git a/libgcc/config/nds32/isr-library/excp_isr_4b.S b/libgcc/config/nds32/isr-library/excp_isr_4b.S
index 0a93ebd7829..ff64832deba 100644
--- a/libgcc/config/nds32/isr-library/excp_isr_4b.S
+++ b/libgcc/config/nds32/isr-library/excp_isr_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/intr_isr.S b/libgcc/config/nds32/isr-library/intr_isr.S
index 0431ac114fb..5f10d264deb 100644
--- a/libgcc/config/nds32/isr-library/intr_isr.S
+++ b/libgcc/config/nds32/isr-library/intr_isr.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -23,6 +23,7 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "save_usr_regs.inc"
#include "save_mac_regs.inc"
#include "save_fpu_regs.inc"
#include "save_fpu_regs_00.inc"
@@ -32,35 +33,33 @@
#include "save_all.inc"
#include "save_partial.inc"
#include "adj_intr_lvl.inc"
-#include "restore_mac_regs.inc"
#include "restore_fpu_regs_00.inc"
#include "restore_fpu_regs_01.inc"
#include "restore_fpu_regs_02.inc"
#include "restore_fpu_regs_03.inc"
#include "restore_fpu_regs.inc"
+#include "restore_mac_regs.inc"
+#include "restore_usr_regs.inc"
#include "restore_all.inc"
#include "restore_partial.inc"
+
.section .nds32_isr, "ax" /* Put it in the section of 1st level handler. */
.align 1
-/*
- First Level Handlers
- 1. First Level Handlers are invokded in vector section via jump instruction
- with specific names for different configurations.
- 2. Naming Format: _nds32_e_SR_NT for exception handlers.
- _nds32_i_SR_NT for interrupt handlers.
- 2.1 All upper case letters are replaced with specific lower case letters encodings.
- 2.2 SR: Saved Registers
- sa: Save All regs (context)
- ps: Partial Save (all caller-saved regs)
- 2.3 NT: Nested Type
- ns: nested
- nn: not nested
- nr: nested ready
-*/
-
-/*
- This is original 16-byte vector size version.
-*/
+
+/* First Level Handlers
+ 1. First Level Handlers are invokded in vector section via jump instruction
+ with specific names for different configurations.
+ 2. Naming Format: _nds32_e_SR_NT for exception handlers.
+ _nds32_i_SR_NT for interrupt handlers.
+ 2.1 All upper case letters are replaced with specific lower case letters encodings.
+ 2.2 SR -- Saved Registers
+ sa: Save All regs (context)
+ ps: Partial Save (all caller-saved regs)
+ 2.3 NT -- Nested Type
+ ns: nested
+ nn: not nested
+ nr: nested ready */
+
#ifdef NDS32_SAVE_ALL_REGS
#if defined(NDS32_NESTED)
.globl _nds32_i_sa_ns
@@ -91,21 +90,36 @@ _nds32_i_ps_nn:
#endif /* endif for Nest Type */
#endif /* not NDS32_SAVE_ALL_REGS */
-/*
- This is 16-byte vector size version.
- The vector id was restored into $r0 in vector by compiler.
-*/
+
+/* For 4-byte vector size version, the vector id is
+ extracted from $ITYPE and is set into $r0 by library.
+ For 16-byte vector size version, the vector id
+ is set into $r0 in vector section by compiler. */
+
+/* Save used registers first. */
#ifdef NDS32_SAVE_ALL_REGS
SAVE_ALL
#else
SAVE_PARTIAL
#endif
- /* Prepare to call 2nd level handler. */
+
+/* According to vector size, we need to have different implementation. */
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* Prepare to call 2nd level handler. */
+ la $r2, _nds32_jmptbl_00
+ lw $r2, [$r2 + $r0 << #2]
+ addi $r0, $r0, #-9 /* Make interrput vector id zero-based. */
+ ADJ_INTR_LVL /* Adjust INTR level. $r3 is clobbered. */
+ jral $r2
+#else /* not __NDS32_ISR_VECTOR_SIZE_4__ */
+ /* Prepare to call 2nd level handler. */
la $r2, _nds32_jmptbl_09 /* For zero-based vcetor id. */
lw $r2, [$r2 + $r0 << #2]
ADJ_INTR_LVL /* Adjust INTR level. $r3 is clobbered. */
jral $r2
- /* Restore used registers. */
+#endif /* not __NDS32_ISR_VECTOR_SIZE_4__ */
+
+/* Restore used registers. */
#ifdef NDS32_SAVE_ALL_REGS
RESTORE_ALL
#else
@@ -113,6 +127,7 @@ _nds32_i_ps_nn:
#endif
iret
+
#ifdef NDS32_SAVE_ALL_REGS
#if defined(NDS32_NESTED)
.size _nds32_i_sa_ns, .-_nds32_i_sa_ns
diff --git a/libgcc/config/nds32/isr-library/intr_isr_4b.S b/libgcc/config/nds32/isr-library/intr_isr_4b.S
index 0e76c3f0557..9ab3ee84ef2 100644
--- a/libgcc/config/nds32/isr-library/intr_isr_4b.S
+++ b/libgcc/config/nds32/isr-library/intr_isr_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid00.S b/libgcc/config/nds32/isr-library/jmptbl_vid00.S
index 1930dfdb438..f75491639ff 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid00.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid00.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid01.S b/libgcc/config/nds32/isr-library/jmptbl_vid01.S
index 2b4c7285221..db5c441e4be 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid01.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid01.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid02.S b/libgcc/config/nds32/isr-library/jmptbl_vid02.S
index 0eb6f355b02..1ff55e5c123 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid02.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid02.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid03.S b/libgcc/config/nds32/isr-library/jmptbl_vid03.S
index c1766b58e93..b67a263b71e 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid03.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid03.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid04.S b/libgcc/config/nds32/isr-library/jmptbl_vid04.S
index ee4e1d69404..a44d5847bb0 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid04.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid04.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid05.S b/libgcc/config/nds32/isr-library/jmptbl_vid05.S
index 8ab832727a4..1e0e019ca51 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid05.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid05.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid06.S b/libgcc/config/nds32/isr-library/jmptbl_vid06.S
index 7a12faa066c..8ffa2f4195d 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid06.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid06.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid07.S b/libgcc/config/nds32/isr-library/jmptbl_vid07.S
index f594adbee94..c5dac360de2 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid07.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid07.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid08.S b/libgcc/config/nds32/isr-library/jmptbl_vid08.S
index 3433c3c01f7..ee2c4a99af2 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid08.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid08.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid09.S b/libgcc/config/nds32/isr-library/jmptbl_vid09.S
index 53cab2f33db..681b380b98a 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid09.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid09.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid10.S b/libgcc/config/nds32/isr-library/jmptbl_vid10.S
index c25c311f3fd..834564283b6 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid10.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid10.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid11.S b/libgcc/config/nds32/isr-library/jmptbl_vid11.S
index a8c4416b278..cae6bba2e7a 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid11.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid11.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid12.S b/libgcc/config/nds32/isr-library/jmptbl_vid12.S
index 86a4bdcb752..93dd4ecde31 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid12.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid12.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid13.S b/libgcc/config/nds32/isr-library/jmptbl_vid13.S
index 6f3947cfcea..1cf11da2ed6 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid13.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid13.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid14.S b/libgcc/config/nds32/isr-library/jmptbl_vid14.S
index be0d0bf1143..72e9a7288c1 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid14.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid14.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid15.S b/libgcc/config/nds32/isr-library/jmptbl_vid15.S
index 8b87c85a2d7..521884fefd9 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid15.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid15.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid16.S b/libgcc/config/nds32/isr-library/jmptbl_vid16.S
index bec91e639f6..ecd65f35a1a 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid16.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid16.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid17.S b/libgcc/config/nds32/isr-library/jmptbl_vid17.S
index c52ab0a6b89..d0de9d69411 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid17.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid17.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid18.S b/libgcc/config/nds32/isr-library/jmptbl_vid18.S
index c9109ef51d5..da654b01e83 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid18.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid18.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid19.S b/libgcc/config/nds32/isr-library/jmptbl_vid19.S
index 622488a0968..7c7f23695af 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid19.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid19.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid20.S b/libgcc/config/nds32/isr-library/jmptbl_vid20.S
index af4f464be07..9aaf4c148a9 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid20.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid20.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid21.S b/libgcc/config/nds32/isr-library/jmptbl_vid21.S
index 989aec056db..492aa9ad4f3 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid21.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid21.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid22.S b/libgcc/config/nds32/isr-library/jmptbl_vid22.S
index db054458a0e..8ea7e30f9ad 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid22.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid22.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid23.S b/libgcc/config/nds32/isr-library/jmptbl_vid23.S
index a899351ebfb..47fbf0258f5 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid23.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid23.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid24.S b/libgcc/config/nds32/isr-library/jmptbl_vid24.S
index e5b9f88c1a4..ef137e78fbb 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid24.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid24.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid25.S b/libgcc/config/nds32/isr-library/jmptbl_vid25.S
index 8f8e405a59a..4f11c85c2e4 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid25.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid25.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid26.S b/libgcc/config/nds32/isr-library/jmptbl_vid26.S
index 193ebe4c7d9..784674fa386 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid26.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid26.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid27.S b/libgcc/config/nds32/isr-library/jmptbl_vid27.S
index 2b398d9654b..5b910150087 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid27.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid27.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid28.S b/libgcc/config/nds32/isr-library/jmptbl_vid28.S
index 205e8ac3da1..f0be716e625 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid28.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid28.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid29.S b/libgcc/config/nds32/isr-library/jmptbl_vid29.S
index 8437ed0ea7d..319dbd86b23 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid29.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid29.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid30.S b/libgcc/config/nds32/isr-library/jmptbl_vid30.S
index 2b72f6a82c2..a8c2a11a356 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid30.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid30.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid31.S b/libgcc/config/nds32/isr-library/jmptbl_vid31.S
index 8a61f6c1232..f93721b279e 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid31.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid31.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid32.S b/libgcc/config/nds32/isr-library/jmptbl_vid32.S
index 2dc0722d8ea..eea9379cb7b 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid32.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid32.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid33.S b/libgcc/config/nds32/isr-library/jmptbl_vid33.S
index cec2ad470a6..06a8e077beb 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid33.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid33.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid34.S b/libgcc/config/nds32/isr-library/jmptbl_vid34.S
index 261b327a9e8..de7de071ca2 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid34.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid34.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid35.S b/libgcc/config/nds32/isr-library/jmptbl_vid35.S
index d5a833ded8f..28944db8fc8 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid35.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid35.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid36.S b/libgcc/config/nds32/isr-library/jmptbl_vid36.S
index e8fae786257..a02d06c1c42 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid36.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid36.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid37.S b/libgcc/config/nds32/isr-library/jmptbl_vid37.S
index b6979816d5c..3a65c6a205c 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid37.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid37.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid38.S b/libgcc/config/nds32/isr-library/jmptbl_vid38.S
index 179e11c0c1f..d1c5b50b472 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid38.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid38.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid39.S b/libgcc/config/nds32/isr-library/jmptbl_vid39.S
index f770fdf349b..f4b44d47ed5 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid39.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid39.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid40.S b/libgcc/config/nds32/isr-library/jmptbl_vid40.S
index 63df1aac3f1..a60daa5cf5e 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid40.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid40.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid41.S b/libgcc/config/nds32/isr-library/jmptbl_vid41.S
index 1a040ca9d5f..44bf182d504 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid41.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid41.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid42.S b/libgcc/config/nds32/isr-library/jmptbl_vid42.S
index 66b92661109..913f75350b9 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid42.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid42.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid43.S b/libgcc/config/nds32/isr-library/jmptbl_vid43.S
index db267b32896..0c0cc5bfb5a 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid43.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid43.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid44.S b/libgcc/config/nds32/isr-library/jmptbl_vid44.S
index e16918a4234..c84dccca733 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid44.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid44.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid45.S b/libgcc/config/nds32/isr-library/jmptbl_vid45.S
index f283c83bfaf..7284c17a5f5 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid45.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid45.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid46.S b/libgcc/config/nds32/isr-library/jmptbl_vid46.S
index c708502340e..1872cd50be0 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid46.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid46.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid47.S b/libgcc/config/nds32/isr-library/jmptbl_vid47.S
index 99c951fc292..b2906d418c5 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid47.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid47.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid48.S b/libgcc/config/nds32/isr-library/jmptbl_vid48.S
index 2a87c07f47f..32a5efc8dc4 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid48.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid48.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid49.S b/libgcc/config/nds32/isr-library/jmptbl_vid49.S
index 4320cb41362..f0ad13a0e0d 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid49.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid49.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid50.S b/libgcc/config/nds32/isr-library/jmptbl_vid50.S
index e725a5205aa..e246122afba 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid50.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid50.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid51.S b/libgcc/config/nds32/isr-library/jmptbl_vid51.S
index c6467174d31..931ead2c712 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid51.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid51.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid52.S b/libgcc/config/nds32/isr-library/jmptbl_vid52.S
index ae5d5fe10fd..f41ed5c7c91 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid52.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid52.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid53.S b/libgcc/config/nds32/isr-library/jmptbl_vid53.S
index 67eacd7f572..e8d6f3b69b8 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid53.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid53.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid54.S b/libgcc/config/nds32/isr-library/jmptbl_vid54.S
index 2ce67ca48c4..4f64ebf6d35 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid54.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid54.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid55.S b/libgcc/config/nds32/isr-library/jmptbl_vid55.S
index 427400ada0f..d4be4d061ab 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid55.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid55.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid56.S b/libgcc/config/nds32/isr-library/jmptbl_vid56.S
index 76059fa0f7e..bd69d65dabc 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid56.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid56.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid57.S b/libgcc/config/nds32/isr-library/jmptbl_vid57.S
index f4c4d308679..2225c399237 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid57.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid57.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid58.S b/libgcc/config/nds32/isr-library/jmptbl_vid58.S
index 7c458d3a13a..b03272e9bc8 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid58.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid58.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid59.S b/libgcc/config/nds32/isr-library/jmptbl_vid59.S
index ae2754c9faf..67645b0832e 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid59.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid59.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid60.S b/libgcc/config/nds32/isr-library/jmptbl_vid60.S
index 34a090444ec..a7b3db32d2a 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid60.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid60.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid61.S b/libgcc/config/nds32/isr-library/jmptbl_vid61.S
index a04c19d15b4..d68b48cfb5b 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid61.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid61.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid62.S b/libgcc/config/nds32/isr-library/jmptbl_vid62.S
index d676d6744cf..923d07864fa 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid62.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid62.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid63.S b/libgcc/config/nds32/isr-library/jmptbl_vid63.S
index ace1de9f2f4..e7f4348ab9f 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid63.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid63.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid64.S b/libgcc/config/nds32/isr-library/jmptbl_vid64.S
index 39cb44f451b..1cfd114eafe 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid64.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid64.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid65.S b/libgcc/config/nds32/isr-library/jmptbl_vid65.S
index e58f5ff04be..76920b04d5e 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid65.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid65.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid66.S b/libgcc/config/nds32/isr-library/jmptbl_vid66.S
index fb1a2941dca..01af8522411 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid66.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid66.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid67.S b/libgcc/config/nds32/isr-library/jmptbl_vid67.S
index e639683a0cb..4678344c140 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid67.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid67.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid68.S b/libgcc/config/nds32/isr-library/jmptbl_vid68.S
index de732716cba..89f0b131eed 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid68.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid68.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid69.S b/libgcc/config/nds32/isr-library/jmptbl_vid69.S
index 0bea564ceb6..9d70644fa71 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid69.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid69.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid70.S b/libgcc/config/nds32/isr-library/jmptbl_vid70.S
index 9f976e6f47e..0cffdb455d0 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid70.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid70.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid71.S b/libgcc/config/nds32/isr-library/jmptbl_vid71.S
index 0e6d5400d04..46bdd71a248 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid71.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid71.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/jmptbl_vid72.S b/libgcc/config/nds32/isr-library/jmptbl_vid72.S
index 50dab976be4..202c7afa95a 100644
--- a/libgcc/config/nds32/isr-library/jmptbl_vid72.S
+++ b/libgcc/config/nds32/isr-library/jmptbl_vid72.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/nmih.S b/libgcc/config/nds32/isr-library/nmih.S
index 652988c86ed..8c7e75bf1de 100644
--- a/libgcc/config/nds32/isr-library/nmih.S
+++ b/libgcc/config/nds32/isr-library/nmih.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/reset.S b/libgcc/config/nds32/isr-library/reset.S
index 78abeb2127c..914752c3ec5 100644
--- a/libgcc/config/nds32/isr-library/reset.S
+++ b/libgcc/config/nds32/isr-library/reset.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -26,22 +26,18 @@
.section .nds32_isr, "ax" /* Put it in the section of 1st level handler. */
.align 1
.weak _SDA_BASE_ /* For reset handler only. */
- .weak _FP_BASE_ /* For reset handler only. */
.weak _nds32_init_mem /* User defined memory initialization function. */
.globl _start
.globl _nds32_reset
.type _nds32_reset, @function
_nds32_reset:
_start:
-#ifdef NDS32_EXT_EX9
- .no_ex9_begin
-#endif
/* Handle NMI and warm boot if any of them exists. */
beqz $sp, 1f /* Reset, NMI or warm boot? */
/* Either NMI or warm boot; save all regs. */
/* Preserve registers for context-switching. */
-#ifdef __NDS32_REDUCED_REGS__
+#if __NDS32_REDUCED_REGS__ || __NDS32_REDUCE_REGS
/* For 16-reg mode. */
smw.adm $r0, [$sp], $r10, #0x0
smw.adm $r15, [$sp], $r15, #0xf
@@ -49,10 +45,9 @@ _start:
/* For 32-reg mode. */
smw.adm $r0, [$sp], $r27, #0xf
#endif
-#ifdef NDS32_EXT_IFC
+#if __NDS32_EXT_IFC__
mfusr $r1, $IFC_LP
- smw.adm $r1, [$sp], $r2, #0x0 /* Save extra $r2 to keep
- stack 8-byte alignment. */
+ smw.adm $r1, [$sp], $r2, #0x0 /* Save extra $r2 to keep stack 8-byte alignment. */
#endif
la $gp, _SDA_BASE_ /* Init GP for small data access. */
@@ -71,12 +66,11 @@ _start:
bnez $r0, 1f /* If fail to resume, do cold boot. */
/* Restore registers for context-switching. */
-#ifdef NDS32_EXT_IFC
- lmw.bim $r1, [$sp], $r2, #0x0 /* Restore extra $r2 to keep
- stack 8-byte alignment. */
+#if __NDS32_EXT_IFC__
+ lmw.bim $r1, [$sp], $r2, #0x0 /* Restore extra $r2 to keep stack 8-byte alignment. */
mtusr $r1, $IFC_LP
#endif
-#ifdef __NDS32_REDUCED_REGS__
+#if __NDS32_REDUCED_REGS__ || __NDS32_REDUCE_REGS
/* For 16-reg mode. */
lmw.bim $r15, [$sp], $r15, #0xf
lmw.bim $r0, [$sp], $r10, #0x0
@@ -88,6 +82,17 @@ _start:
1: /* Cold boot. */
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* With vector ID feature for v3 architecture, default vector size is 4-byte. */
+ /* Set IVB.ESZ = 0 (vector table entry size = 4 bytes) */
+ mfsr $r0, $IVB
+ li $r1, #0xc000
+ or $r0, $r0, $r1
+ xor $r0, $r0, $r1
+ mtsr $r0, $IVB
+ dsb
+#else
+ /* There is no vector ID feature, so the vector size must be 16-byte. */
/* Set IVB.ESZ = 1 (vector table entry size = 16 bytes) */
mfsr $r0, $IVB
li $r1, #0xffff3fff
@@ -95,36 +100,54 @@ _start:
ori $r0, $r0, #0x4000
mtsr $r0, $IVB
dsb
+#endif
la $gp, _SDA_BASE_ /* Init $gp. */
- la $fp, _FP_BASE_ /* Init $fp. */
la $sp, _stack /* Init $sp. */
-#ifdef NDS32_EXT_EX9
-/*
- * Initialize the table base of EX9 instruction
- * ex9 generation needs to disable before the ITB is set
- */
- mfsr $r0, $MSC_CFG /* Check if HW support of EX9. */
+
+#if __NDS32_EXT_EX9__
+.L_init_itb:
+ /* Initialization for Instruction Table Base (ITB).
+ The symbol _ITB_BASE_ is determined by Linker.
+ Set $ITB only if MSC_CFG.EIT (cr4.b'24) is set. */
+ mfsr $r0, $MSC_CFG
srli $r0, $r0, 24
andi $r0, $r0, 0x1
- beqz $r0, 4f /* Zero means HW does not support EX9. */
- la $r0, _ITB_BASE_ /* Init $ITB. */
+ beqz $r0, 4f /* Fall through ? */
+ la $r0, _ITB_BASE_
mtusr $r0, $ITB
- .no_ex9_end
4:
#endif
- la $r15, _nds32_init_mem /* Call DRAM init. _nds32_init_mem
- may written by C language. */
+
+#if __NDS32_EXT_FPU_SP__ || __NDS32_EXT_FPU_DP__
+.L_init_fpu:
+ /* Initialize FPU
+ Set FUCOP_CTL.CP0EN (fucpr.b'0). */
+ mfsr $r0, $FUCOP_CTL
+ ori $r0, $r0, 0x1
+ mtsr $r0, $FUCOP_CTL
+ dsb
+ /* According to [bugzilla #9425], set flush-to-zero mode.
+ That is, set $FPCSR.DNZ(b'12) = 1. */
+ FMFCSR $r0
+ ori $r0, $r0, 0x1000
+ FMTCSR $r0
+ dsb
+#endif
+
+ /* Call DRAM init. _nds32_init_mem may written by C language. */
+ la $r15, _nds32_init_mem
beqz $r15, 6f
jral $r15
6:
l.w $r15, _nds32_jmptbl_00 /* Load reset handler. */
jral $r15
-/* Reset handler() should never return in a RTOS or non-OS system.
- In case it does return, an exception will be generated.
- This exception will be caught either by default break handler or by EDM.
- Default break handle may just do an infinite loop.
- EDM will notify GDB and GDB will regain control when the ID is 0x7fff. */
+
+ /* Reset handler() should never return in a RTOS or non-OS system.
+ In case it does return, an exception will be generated.
+ This exception will be caught either by default break handler or by EDM.
+ Default break handle may just do an infinite loop.
+ EDM will notify GDB and GDB will regain control when the ID is 0x7fff. */
5:
break #0x7fff
.size _nds32_reset, .-_nds32_reset
diff --git a/libgcc/config/nds32/isr-library/reset_4b.S b/libgcc/config/nds32/isr-library/reset_4b.S
index 1c8eb6dfb88..e2bbbd662e7 100644
--- a/libgcc/config/nds32/isr-library/reset_4b.S
+++ b/libgcc/config/nds32/isr-library/reset_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/restore_all.inc b/libgcc/config/nds32/isr-library/restore_all.inc
index 74556466fa9..2c9340dbe3c 100644
--- a/libgcc/config/nds32/isr-library/restore_all.inc
+++ b/libgcc/config/nds32/isr-library/restore_all.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -31,15 +31,11 @@
mtsr $r2, $IPSW
RESTORE_FPU_REGS
RESTORE_MAC_REGS
-#ifdef NDS32_EXT_IFC
- lmw.bim $r1, [$sp], $r2, #0x0 /* Restore extra $r2 to keep
- stack 8-byte alignment. */
- mtusr $r1, $IFC_LP
-#endif
-#ifdef __NDS32_REDUCED_REGS__
+ RESTORE_USR_REGS
+#if __NDS32_REDUCED_REGS__ || __NDS32_REDUCE_REGS
lmw.bim $r0, [$sp], $r10, #0x0 /* Restore all regs. */
lmw.bim $r15, [$sp], $r15, #0xf
-#else /* not __NDS32_REDUCED_REGS__ */
+#else
lmw.bim $r0, [$sp], $r27, #0xf /* Restore all regs. */
#endif
.endm
diff --git a/libgcc/config/nds32/isr-library/restore_fpu_regs.inc b/libgcc/config/nds32/isr-library/restore_fpu_regs.inc
index b88290bad41..f51a0d74a6d 100644
--- a/libgcc/config/nds32/isr-library/restore_fpu_regs.inc
+++ b/libgcc/config/nds32/isr-library/restore_fpu_regs.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc b/libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc
index ecd1e41e354..830142958c4 100644
--- a/libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc
+++ b/libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc b/libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc
index 9454fb653b8..82d0c963be4 100644
--- a/libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc
+++ b/libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc b/libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc
index 505fe52bed7..d830e391871 100644
--- a/libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc
+++ b/libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc b/libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc
index 6566288b9e6..9577d61b420 100644
--- a/libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc
+++ b/libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/restore_mac_regs.inc b/libgcc/config/nds32/isr-library/restore_mac_regs.inc
index 1e6aac669af..89c881e98dc 100644
--- a/libgcc/config/nds32/isr-library/restore_mac_regs.inc
+++ b/libgcc/config/nds32/isr-library/restore_mac_regs.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,7 +24,7 @@
<http://www.gnu.org/licenses/>. */
.macro RESTORE_MAC_REGS
-#ifdef NDS32_DX_REGS
+#if __NDS32_DX_REGS__
lmw.bim $r1, [$sp], $r4, #0x0
mtusr $r1, $d0.lo
mtusr $r2, $d0.hi
diff --git a/libgcc/config/nds32/isr-library/restore_partial.inc b/libgcc/config/nds32/isr-library/restore_partial.inc
index d406a99820d..8c71abdffa6 100644
--- a/libgcc/config/nds32/isr-library/restore_partial.inc
+++ b/libgcc/config/nds32/isr-library/restore_partial.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -31,15 +31,11 @@
mtsr $r1, $IPC /* Set IPC. */
mtsr $r2, $IPSW /* Set IPSW. */
#endif
- RESTORE_FPU_REGS
- RESTORE_MAC_REGS
-#ifdef NDS32_EXT_IFC
- lmw.bim $r1, [$sp], $r2, #0x0 /* Restore extra $r2 to keep
- stack 8-byte alignment. */
- mtusr $r1, $IFC_LP
-#endif
+ RESTORE_FPU_REGS
+ RESTORE_MAC_REGS
+ RESTORE_USR_REGS
lmw.bim $r0, [$sp], $r5, #0x0 /* Restore all regs. */
-#ifdef __NDS32_REDUCED_REGS__
+#if __NDS32_REDUCED_REGS__ || __NDS32_REDUCE_REGS
lmw.bim $r15, [$sp], $r15, #0x2
#else
lmw.bim $r15, [$sp], $r27, #0x2 /* Restore all regs. */
diff --git a/libgcc/config/nds32/isr-library/restore_usr_regs.inc b/libgcc/config/nds32/isr-library/restore_usr_regs.inc
new file mode 100644
index 00000000000..e18d185cc47
--- /dev/null
+++ b/libgcc/config/nds32/isr-library/restore_usr_regs.inc
@@ -0,0 +1,42 @@
+/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
+ Contributed by Andes Technology Corporation.
+
+ 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/>. */
+
+.macro RESTORE_USR_REGS
+#if __NDS32_EXT_IFC__ && (__NDS32_EXT_ZOL__ || __NDS32_EXT_DSP__)
+ lmw.bim $r1, [$sp], $r4, #0x0
+ mtusr $r1, $IFC_LP
+ mtusr $r2, $LB
+ mtusr $r3, $LE
+ mtusr $r4, $LC
+#elif __NDS32_EXT_IFC__
+ lmw.bim $r1, [$sp], $r2, #0x0
+ mtusr $r1, $IFC_LP
+#elif __NDS32_EXT_ZOL__ || __NDS32_EXT_DSP__
+ lmw.bim $r1, [$sp], $r4, #0x0
+ mtusr $r1, $LB
+ mtusr $r2, $LE
+ mtusr $r3, $LC
+#endif
+.endm
diff --git a/libgcc/config/nds32/isr-library/save_all.inc b/libgcc/config/nds32/isr-library/save_all.inc
index fa08b399bb4..85eb68ca240 100644
--- a/libgcc/config/nds32/isr-library/save_all.inc
+++ b/libgcc/config/nds32/isr-library/save_all.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -23,45 +23,42 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
-.macro SAVE_ALL_4B
-#ifdef __NDS32_REDUCED_REGS__
+#if __NDS32_ISR_VECTOR_SIZE_4__
+
+/* If vector size is 4-byte, we have to save registers
+ in the macro implementation. */
+.macro SAVE_ALL
+#if __NDS32_REDUCED_REGS__ || __NDS32_REDUCE_REGS
smw.adm $r15, [$sp], $r15, #0xf
smw.adm $r0, [$sp], $r10, #0x0
-#else /* not __NDS32_REDUCED_REGS__ */
+#else
smw.adm $r0, [$sp], $r27, #0xf
-#endif /* not __NDS32_REDUCED_REGS__ */
-#ifdef NDS32_EXT_IFC
- mfusr $r1, $IFC_LP
- smw.adm $r1, [$sp], $r2, #0x0 /* Save extra $r2 to keep
- stack 8-byte alignment. */
#endif
- SAVE_MAC_REGS
- SAVE_FPU_REGS
+ SAVE_USR_REGS
+ SAVE_MAC_REGS
+ SAVE_FPU_REGS
mfsr $r1, $IPC /* Get IPC. */
mfsr $r2, $IPSW /* Get IPSW. */
smw.adm $r1, [$sp], $r2, #0x0 /* Push IPC, IPSW. */
move $r1, $sp /* $r1 is ptr to NDS32_CONTEXT. */
mfsr $r0, $ITYPE /* Get VID to $r0. */
srli $r0, $r0, #5
-#ifdef __NDS32_ISA_V2__
andi $r0, $r0, #127
-#else
- fexti33 $r0, #6
-#endif
.endm
+#else /* not __NDS32_ISR_VECTOR_SIZE_4__ */
+
+/* If vector size is 16-byte, some works can be done in
+ the vector section generated by compiler, so that we
+ can implement less in the macro. */
.macro SAVE_ALL
-/* SAVE_REG_TBL code has been moved to
- vector table generated by compiler. */
-#ifdef NDS32_EXT_IFC
- mfusr $r1, $IFC_LP
- smw.adm $r1, [$sp], $r2, #0x0 /* Save extra $r2 to keep
- stack 8-byte alignment. */
-#endif
- SAVE_MAC_REGS
- SAVE_FPU_REGS
+ SAVE_USR_REGS
+ SAVE_MAC_REGS
+ SAVE_FPU_REGS
mfsr $r1, $IPC /* Get IPC. */
mfsr $r2, $IPSW /* Get IPSW. */
smw.adm $r1, [$sp], $r2, #0x0 /* Push IPC, IPSW. */
move $r1, $sp /* $r1 is ptr to NDS32_CONTEXT. */
.endm
+
+#endif /* not __NDS32_ISR_VECTOR_SIZE_4__ */
diff --git a/libgcc/config/nds32/isr-library/save_fpu_regs.inc b/libgcc/config/nds32/isr-library/save_fpu_regs.inc
index c312967a58e..3623352b875 100644
--- a/libgcc/config/nds32/isr-library/save_fpu_regs.inc
+++ b/libgcc/config/nds32/isr-library/save_fpu_regs.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/save_fpu_regs_00.inc b/libgcc/config/nds32/isr-library/save_fpu_regs_00.inc
index 91bd4d7fc02..1b29ac3cde3 100644
--- a/libgcc/config/nds32/isr-library/save_fpu_regs_00.inc
+++ b/libgcc/config/nds32/isr-library/save_fpu_regs_00.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/save_fpu_regs_01.inc b/libgcc/config/nds32/isr-library/save_fpu_regs_01.inc
index 27f68929ff7..e4c1ce9f633 100644
--- a/libgcc/config/nds32/isr-library/save_fpu_regs_01.inc
+++ b/libgcc/config/nds32/isr-library/save_fpu_regs_01.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/save_fpu_regs_02.inc b/libgcc/config/nds32/isr-library/save_fpu_regs_02.inc
index 9074ae2c203..221ca942e99 100644
--- a/libgcc/config/nds32/isr-library/save_fpu_regs_02.inc
+++ b/libgcc/config/nds32/isr-library/save_fpu_regs_02.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/save_fpu_regs_03.inc b/libgcc/config/nds32/isr-library/save_fpu_regs_03.inc
index cd6dd60df32..2085f795970 100644
--- a/libgcc/config/nds32/isr-library/save_fpu_regs_03.inc
+++ b/libgcc/config/nds32/isr-library/save_fpu_regs_03.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/save_mac_regs.inc b/libgcc/config/nds32/isr-library/save_mac_regs.inc
index ff120e87a8f..39ddbff7efe 100644
--- a/libgcc/config/nds32/isr-library/save_mac_regs.inc
+++ b/libgcc/config/nds32/isr-library/save_mac_regs.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,7 +24,7 @@
<http://www.gnu.org/licenses/>. */
.macro SAVE_MAC_REGS
-#ifdef NDS32_DX_REGS
+#if __NDS32_DX_REGS__
mfusr $r1, $d0.lo
mfusr $r2, $d0.hi
mfusr $r3, $d1.lo
diff --git a/libgcc/config/nds32/isr-library/save_partial.inc b/libgcc/config/nds32/isr-library/save_partial.inc
index 2445e48067e..00c284aa356 100644
--- a/libgcc/config/nds32/isr-library/save_partial.inc
+++ b/libgcc/config/nds32/isr-library/save_partial.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -23,20 +23,20 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
-.macro SAVE_PARTIAL_4B
-#ifdef __NDS32_REDUCED_REGS__
+#if __NDS32_ISR_VECTOR_SIZE_4__
+
+/* If vector size is 4-byte, we have to save registers
+ in the macro implementation. */
+.macro SAVE_PARTIAL
+#if __NDS32_REDUCED_REGS__ || __NDS32_REDUCE_REGS
smw.adm $r15, [$sp], $r15, #0x2
-#else /* not __NDS32_REDUCED_REGS__ */
+#else
smw.adm $r15, [$sp], $r27, #0x2
-#endif /* not __NDS32_REDUCED_REGS__ */
- smw.adm $r0, [$sp], $r5, #0x0
-#ifdef NDS32_EXT_IFC
- mfusr $r1, $IFC_LP
- smw.adm $r1, [$sp], $r2, #0x0 /* Save extra $r2 to keep
- stack 8-byte alignment. */
#endif
- SAVE_MAC_REGS
- SAVE_FPU_REGS
+ smw.adm $r0, [$sp], $r5, #0x0
+ SAVE_USR_REGS
+ SAVE_MAC_REGS
+ SAVE_FPU_REGS
#if defined(NDS32_NESTED) || defined(NDS32_NESTED_READY)
mfsr $r1, $IPC /* Get IPC. */
mfsr $r2, $IPSW /* Get IPSW. */
@@ -44,26 +44,24 @@
#endif
mfsr $r0, $ITYPE /* Get VID to $r0. */
srli $r0, $r0, #5
-#ifdef __NDS32_ISA_V2__
andi $r0, $r0, #127
-#else
- fexti33 $r0, #6
-#endif
.endm
+#else /* not __NDS32_ISR_VECTOR_SIZE_4__ */
+
+/* If vector size is 16-byte, some works can be done in
+ the vector section generated by compiler, so that we
+ can implement less in the macro. */
+
.macro SAVE_PARTIAL
-/* SAVE_CALLER_REGS code has been moved to
- vector table generated by compiler. */
-#ifdef NDS32_EXT_IFC
- mfusr $r1, $IFC_LP
- smw.adm $r1, [$sp], $r2, #0x0 /* Save extra $r2 to keep
- stack 8-byte alignment. */
-#endif
- SAVE_MAC_REGS
- SAVE_FPU_REGS
+ SAVE_USR_REGS
+ SAVE_MAC_REGS
+ SAVE_FPU_REGS
#if defined(NDS32_NESTED) || defined(NDS32_NESTED_READY)
mfsr $r1, $IPC /* Get IPC. */
mfsr $r2, $IPSW /* Get IPSW. */
smw.adm $r1, [$sp], $r2, #0x0 /* Push IPC, IPSW. */
#endif
.endm
+
+#endif /* not __NDS32_ISR_VECTOR_SIZE_4__ */
diff --git a/libgcc/config/nds32/isr-library/save_usr_regs.inc b/libgcc/config/nds32/isr-library/save_usr_regs.inc
new file mode 100644
index 00000000000..740d3c3ccef
--- /dev/null
+++ b/libgcc/config/nds32/isr-library/save_usr_regs.inc
@@ -0,0 +1,44 @@
+/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
+ Contributed by Andes Technology Corporation.
+
+ 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/>. */
+
+.macro SAVE_USR_REGS
+/* Store User Special Registers according to supported ISA extension
+ !!! WATCH OUT !!! Take care of 8-byte alignment issue. */
+#if __NDS32_EXT_IFC__ && (__NDS32_EXT_ZOL__ || __NDS32_EXT_DSP__)
+ mfusr $r1, $IFC_LP
+ mfusr $r2, $LB
+ mfusr $r3, $LE
+ mfusr $r4, $LC
+ smw.adm $r1, [$sp], $r4, #0x0 /* Save even. Ok! */
+#elif __NDS32_EXT_IFC__
+ mfusr $r1, $IFC_LP
+ smw.adm $r1, [$sp], $r2, #0x0 /* Save extra $r2 to keep stack 8-byte aligned. */
+#elif (__NDS32_EXT_ZOL__ || __NDS32_EXT_DSP__)
+ mfusr $r1, $LB
+ mfusr $r2, $LE
+ mfusr $r3, $LC
+ smw.adm $r1, [$sp], $r4, #0x0 /* Save extra $r4 to keep stack 8-byte aligned. */
+#endif
+.endm
diff --git a/libgcc/config/nds32/isr-library/vec_vid00.S b/libgcc/config/nds32/isr-library/vec_vid00.S
index b2a645c53f0..3c81b005395 100644
--- a/libgcc/config/nds32/isr-library/vec_vid00.S
+++ b/libgcc/config/nds32/isr-library/vec_vid00.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.00, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_00
.type _nds32_vector_00, @function
_nds32_vector_00:
diff --git a/libgcc/config/nds32/isr-library/vec_vid00_4b.S b/libgcc/config/nds32/isr-library/vec_vid00_4b.S
index 8d36907840b..2af4d46c3c1 100644
--- a/libgcc/config/nds32/isr-library/vec_vid00_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid00_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid01.S b/libgcc/config/nds32/isr-library/vec_vid01.S
index 9e796c70524..fb4a6f909e3 100644
--- a/libgcc/config/nds32/isr-library/vec_vid01.S
+++ b/libgcc/config/nds32/isr-library/vec_vid01.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.01, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_01
.type _nds32_vector_01, @function
_nds32_vector_01:
diff --git a/libgcc/config/nds32/isr-library/vec_vid01_4b.S b/libgcc/config/nds32/isr-library/vec_vid01_4b.S
index 7ef85e5e104..cb91083f44b 100644
--- a/libgcc/config/nds32/isr-library/vec_vid01_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid01_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid02.S b/libgcc/config/nds32/isr-library/vec_vid02.S
index a6b34b7d63a..f79c9616434 100644
--- a/libgcc/config/nds32/isr-library/vec_vid02.S
+++ b/libgcc/config/nds32/isr-library/vec_vid02.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.02, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_02
.type _nds32_vector_02, @function
_nds32_vector_02:
diff --git a/libgcc/config/nds32/isr-library/vec_vid02_4b.S b/libgcc/config/nds32/isr-library/vec_vid02_4b.S
index a840f3daba9..ec7b386a285 100644
--- a/libgcc/config/nds32/isr-library/vec_vid02_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid02_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid03.S b/libgcc/config/nds32/isr-library/vec_vid03.S
index 680f6d9a60f..7f99247bb6c 100644
--- a/libgcc/config/nds32/isr-library/vec_vid03.S
+++ b/libgcc/config/nds32/isr-library/vec_vid03.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.03, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_03
.type _nds32_vector_03, @function
_nds32_vector_03:
diff --git a/libgcc/config/nds32/isr-library/vec_vid03_4b.S b/libgcc/config/nds32/isr-library/vec_vid03_4b.S
index 05463c446c3..667a7a78315 100644
--- a/libgcc/config/nds32/isr-library/vec_vid03_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid03_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid04.S b/libgcc/config/nds32/isr-library/vec_vid04.S
index f0b616ceb8a..a91d1a4d6cf 100644
--- a/libgcc/config/nds32/isr-library/vec_vid04.S
+++ b/libgcc/config/nds32/isr-library/vec_vid04.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.04, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_04
.type _nds32_vector_04, @function
_nds32_vector_04:
diff --git a/libgcc/config/nds32/isr-library/vec_vid04_4b.S b/libgcc/config/nds32/isr-library/vec_vid04_4b.S
index 6742899a31d..d0383d92666 100644
--- a/libgcc/config/nds32/isr-library/vec_vid04_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid04_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid05.S b/libgcc/config/nds32/isr-library/vec_vid05.S
index 47cbcea0a51..ac3a91b04f1 100644
--- a/libgcc/config/nds32/isr-library/vec_vid05.S
+++ b/libgcc/config/nds32/isr-library/vec_vid05.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.05, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_05
.type _nds32_vector_05, @function
_nds32_vector_05:
diff --git a/libgcc/config/nds32/isr-library/vec_vid05_4b.S b/libgcc/config/nds32/isr-library/vec_vid05_4b.S
index 6db528f8517..424ea72d40c 100644
--- a/libgcc/config/nds32/isr-library/vec_vid05_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid05_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid06.S b/libgcc/config/nds32/isr-library/vec_vid06.S
index 851836cf9ea..c0d7c33fd65 100644
--- a/libgcc/config/nds32/isr-library/vec_vid06.S
+++ b/libgcc/config/nds32/isr-library/vec_vid06.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.06, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_06
.type _nds32_vector_06, @function
_nds32_vector_06:
diff --git a/libgcc/config/nds32/isr-library/vec_vid06_4b.S b/libgcc/config/nds32/isr-library/vec_vid06_4b.S
index aeeccb66854..6e123f48baa 100644
--- a/libgcc/config/nds32/isr-library/vec_vid06_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid06_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid07.S b/libgcc/config/nds32/isr-library/vec_vid07.S
index 664ee0ca7b0..965fca9c3f2 100644
--- a/libgcc/config/nds32/isr-library/vec_vid07.S
+++ b/libgcc/config/nds32/isr-library/vec_vid07.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.07, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_07
.type _nds32_vector_07, @function
_nds32_vector_07:
diff --git a/libgcc/config/nds32/isr-library/vec_vid07_4b.S b/libgcc/config/nds32/isr-library/vec_vid07_4b.S
index ef8c490be41..750f692a80d 100644
--- a/libgcc/config/nds32/isr-library/vec_vid07_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid07_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid08.S b/libgcc/config/nds32/isr-library/vec_vid08.S
index 1b5534c3475..d36d8ddb4fa 100644
--- a/libgcc/config/nds32/isr-library/vec_vid08.S
+++ b/libgcc/config/nds32/isr-library/vec_vid08.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.08, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_08
.type _nds32_vector_08, @function
_nds32_vector_08:
diff --git a/libgcc/config/nds32/isr-library/vec_vid08_4b.S b/libgcc/config/nds32/isr-library/vec_vid08_4b.S
index 476dbf9482f..4441c1f72cd 100644
--- a/libgcc/config/nds32/isr-library/vec_vid08_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid08_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid09.S b/libgcc/config/nds32/isr-library/vec_vid09.S
index 81a56753202..eeb02edfb2e 100644
--- a/libgcc/config/nds32/isr-library/vec_vid09.S
+++ b/libgcc/config/nds32/isr-library/vec_vid09.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.09, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_09
.type _nds32_vector_09, @function
_nds32_vector_09:
diff --git a/libgcc/config/nds32/isr-library/vec_vid09_4b.S b/libgcc/config/nds32/isr-library/vec_vid09_4b.S
index 5e7706fcf83..74d89d234de 100644
--- a/libgcc/config/nds32/isr-library/vec_vid09_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid09_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid10.S b/libgcc/config/nds32/isr-library/vec_vid10.S
index 102f7cf2ae6..e15806a970e 100644
--- a/libgcc/config/nds32/isr-library/vec_vid10.S
+++ b/libgcc/config/nds32/isr-library/vec_vid10.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.10, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_10
.type _nds32_vector_10, @function
_nds32_vector_10:
diff --git a/libgcc/config/nds32/isr-library/vec_vid10_4b.S b/libgcc/config/nds32/isr-library/vec_vid10_4b.S
index a7fe40c8d23..bcbd01ca4a7 100644
--- a/libgcc/config/nds32/isr-library/vec_vid10_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid10_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid11.S b/libgcc/config/nds32/isr-library/vec_vid11.S
index ade2ee5190c..3c0fef6d9cf 100644
--- a/libgcc/config/nds32/isr-library/vec_vid11.S
+++ b/libgcc/config/nds32/isr-library/vec_vid11.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.11, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_11
.type _nds32_vector_11, @function
_nds32_vector_11:
diff --git a/libgcc/config/nds32/isr-library/vec_vid11_4b.S b/libgcc/config/nds32/isr-library/vec_vid11_4b.S
index 43f2cba97d6..a69c580ae6c 100644
--- a/libgcc/config/nds32/isr-library/vec_vid11_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid11_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid12.S b/libgcc/config/nds32/isr-library/vec_vid12.S
index a5958111946..e1d25667a2d 100644
--- a/libgcc/config/nds32/isr-library/vec_vid12.S
+++ b/libgcc/config/nds32/isr-library/vec_vid12.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.12, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_12
.type _nds32_vector_12, @function
_nds32_vector_12:
diff --git a/libgcc/config/nds32/isr-library/vec_vid12_4b.S b/libgcc/config/nds32/isr-library/vec_vid12_4b.S
index 47a9dd7017f..66af80aa41b 100644
--- a/libgcc/config/nds32/isr-library/vec_vid12_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid12_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid13.S b/libgcc/config/nds32/isr-library/vec_vid13.S
index 55863be5e72..b733c4de52f 100644
--- a/libgcc/config/nds32/isr-library/vec_vid13.S
+++ b/libgcc/config/nds32/isr-library/vec_vid13.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.13, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_13
.type _nds32_vector_13, @function
_nds32_vector_13:
diff --git a/libgcc/config/nds32/isr-library/vec_vid13_4b.S b/libgcc/config/nds32/isr-library/vec_vid13_4b.S
index 19e9f0363ec..14b64d8e613 100644
--- a/libgcc/config/nds32/isr-library/vec_vid13_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid13_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid14.S b/libgcc/config/nds32/isr-library/vec_vid14.S
index abe7f42d1df..658e67444f7 100644
--- a/libgcc/config/nds32/isr-library/vec_vid14.S
+++ b/libgcc/config/nds32/isr-library/vec_vid14.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.14, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_14
.type _nds32_vector_14, @function
_nds32_vector_14:
diff --git a/libgcc/config/nds32/isr-library/vec_vid14_4b.S b/libgcc/config/nds32/isr-library/vec_vid14_4b.S
index 80f331f60e3..310c9131e71 100644
--- a/libgcc/config/nds32/isr-library/vec_vid14_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid14_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid15.S b/libgcc/config/nds32/isr-library/vec_vid15.S
index 890819f3ec2..b6748451344 100644
--- a/libgcc/config/nds32/isr-library/vec_vid15.S
+++ b/libgcc/config/nds32/isr-library/vec_vid15.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.15, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_15
.type _nds32_vector_15, @function
_nds32_vector_15:
diff --git a/libgcc/config/nds32/isr-library/vec_vid15_4b.S b/libgcc/config/nds32/isr-library/vec_vid15_4b.S
index 52c9e58195d..5213f98d2ca 100644
--- a/libgcc/config/nds32/isr-library/vec_vid15_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid15_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid16.S b/libgcc/config/nds32/isr-library/vec_vid16.S
index 20db62501ba..f8d67f2f955 100644
--- a/libgcc/config/nds32/isr-library/vec_vid16.S
+++ b/libgcc/config/nds32/isr-library/vec_vid16.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.16, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_16
.type _nds32_vector_16, @function
_nds32_vector_16:
diff --git a/libgcc/config/nds32/isr-library/vec_vid16_4b.S b/libgcc/config/nds32/isr-library/vec_vid16_4b.S
index 8fc46a9418e..92ca3691914 100644
--- a/libgcc/config/nds32/isr-library/vec_vid16_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid16_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid17.S b/libgcc/config/nds32/isr-library/vec_vid17.S
index c1ca9f62353..bf4de864b57 100644
--- a/libgcc/config/nds32/isr-library/vec_vid17.S
+++ b/libgcc/config/nds32/isr-library/vec_vid17.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.17, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_17
.type _nds32_vector_17, @function
_nds32_vector_17:
diff --git a/libgcc/config/nds32/isr-library/vec_vid17_4b.S b/libgcc/config/nds32/isr-library/vec_vid17_4b.S
index 584baee051a..9ed3e7e8288 100644
--- a/libgcc/config/nds32/isr-library/vec_vid17_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid17_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid18.S b/libgcc/config/nds32/isr-library/vec_vid18.S
index ef4cbeec2e6..4d0b2d59f9f 100644
--- a/libgcc/config/nds32/isr-library/vec_vid18.S
+++ b/libgcc/config/nds32/isr-library/vec_vid18.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.18, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_18
.type _nds32_vector_18, @function
_nds32_vector_18:
diff --git a/libgcc/config/nds32/isr-library/vec_vid18_4b.S b/libgcc/config/nds32/isr-library/vec_vid18_4b.S
index df631da95f0..7d1cdad2bf4 100644
--- a/libgcc/config/nds32/isr-library/vec_vid18_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid18_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid19.S b/libgcc/config/nds32/isr-library/vec_vid19.S
index 5efab98f379..637a3ac0a71 100644
--- a/libgcc/config/nds32/isr-library/vec_vid19.S
+++ b/libgcc/config/nds32/isr-library/vec_vid19.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.19, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_19
.type _nds32_vector_19, @function
_nds32_vector_19:
diff --git a/libgcc/config/nds32/isr-library/vec_vid19_4b.S b/libgcc/config/nds32/isr-library/vec_vid19_4b.S
index c4cb88a8330..e55387eb254 100644
--- a/libgcc/config/nds32/isr-library/vec_vid19_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid19_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid20.S b/libgcc/config/nds32/isr-library/vec_vid20.S
index 95e124700c3..e86bba0b624 100644
--- a/libgcc/config/nds32/isr-library/vec_vid20.S
+++ b/libgcc/config/nds32/isr-library/vec_vid20.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.20, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_20
.type _nds32_vector_20, @function
_nds32_vector_20:
diff --git a/libgcc/config/nds32/isr-library/vec_vid20_4b.S b/libgcc/config/nds32/isr-library/vec_vid20_4b.S
index 5228e9e3860..d56dcc93685 100644
--- a/libgcc/config/nds32/isr-library/vec_vid20_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid20_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid21.S b/libgcc/config/nds32/isr-library/vec_vid21.S
index f3f401e25a0..a9211c1c5b5 100644
--- a/libgcc/config/nds32/isr-library/vec_vid21.S
+++ b/libgcc/config/nds32/isr-library/vec_vid21.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.21, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_21
.type _nds32_vector_21, @function
_nds32_vector_21:
diff --git a/libgcc/config/nds32/isr-library/vec_vid21_4b.S b/libgcc/config/nds32/isr-library/vec_vid21_4b.S
index 7a24b3e5abf..9f1fb201f80 100644
--- a/libgcc/config/nds32/isr-library/vec_vid21_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid21_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid22.S b/libgcc/config/nds32/isr-library/vec_vid22.S
index 28d0d99795f..4160d4859d3 100644
--- a/libgcc/config/nds32/isr-library/vec_vid22.S
+++ b/libgcc/config/nds32/isr-library/vec_vid22.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.22, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_22
.type _nds32_vector_22, @function
_nds32_vector_22:
diff --git a/libgcc/config/nds32/isr-library/vec_vid22_4b.S b/libgcc/config/nds32/isr-library/vec_vid22_4b.S
index 033f821061d..b7925f8435d 100644
--- a/libgcc/config/nds32/isr-library/vec_vid22_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid22_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid23.S b/libgcc/config/nds32/isr-library/vec_vid23.S
index a8246298fed..0ed8f64dfe1 100644
--- a/libgcc/config/nds32/isr-library/vec_vid23.S
+++ b/libgcc/config/nds32/isr-library/vec_vid23.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.23, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_23
.type _nds32_vector_23, @function
_nds32_vector_23:
diff --git a/libgcc/config/nds32/isr-library/vec_vid23_4b.S b/libgcc/config/nds32/isr-library/vec_vid23_4b.S
index 1785009e862..4e9ba2ab15b 100644
--- a/libgcc/config/nds32/isr-library/vec_vid23_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid23_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid24.S b/libgcc/config/nds32/isr-library/vec_vid24.S
index 2c0e2d81c8c..a4e20dac22c 100644
--- a/libgcc/config/nds32/isr-library/vec_vid24.S
+++ b/libgcc/config/nds32/isr-library/vec_vid24.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.24, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_24
.type _nds32_vector_24, @function
_nds32_vector_24:
diff --git a/libgcc/config/nds32/isr-library/vec_vid24_4b.S b/libgcc/config/nds32/isr-library/vec_vid24_4b.S
index a2320ad734b..d3e58b7223b 100644
--- a/libgcc/config/nds32/isr-library/vec_vid24_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid24_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid25.S b/libgcc/config/nds32/isr-library/vec_vid25.S
index 56f78863cef..38aac0b5129 100644
--- a/libgcc/config/nds32/isr-library/vec_vid25.S
+++ b/libgcc/config/nds32/isr-library/vec_vid25.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.25, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_25
.type _nds32_vector_25, @function
_nds32_vector_25:
diff --git a/libgcc/config/nds32/isr-library/vec_vid25_4b.S b/libgcc/config/nds32/isr-library/vec_vid25_4b.S
index 33da301e258..13ea5bf37d8 100644
--- a/libgcc/config/nds32/isr-library/vec_vid25_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid25_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid26.S b/libgcc/config/nds32/isr-library/vec_vid26.S
index b02163ead68..c98173e4316 100644
--- a/libgcc/config/nds32/isr-library/vec_vid26.S
+++ b/libgcc/config/nds32/isr-library/vec_vid26.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.26, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_26
.type _nds32_vector_26, @function
_nds32_vector_26:
diff --git a/libgcc/config/nds32/isr-library/vec_vid26_4b.S b/libgcc/config/nds32/isr-library/vec_vid26_4b.S
index fed21280220..8788d46ef00 100644
--- a/libgcc/config/nds32/isr-library/vec_vid26_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid26_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid27.S b/libgcc/config/nds32/isr-library/vec_vid27.S
index 276d1f0b49e..81776ef68a8 100644
--- a/libgcc/config/nds32/isr-library/vec_vid27.S
+++ b/libgcc/config/nds32/isr-library/vec_vid27.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.27, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_27
.type _nds32_vector_27, @function
_nds32_vector_27:
diff --git a/libgcc/config/nds32/isr-library/vec_vid27_4b.S b/libgcc/config/nds32/isr-library/vec_vid27_4b.S
index 8f32c1d30d0..69b9ce6256c 100644
--- a/libgcc/config/nds32/isr-library/vec_vid27_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid27_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid28.S b/libgcc/config/nds32/isr-library/vec_vid28.S
index 59e8cc2c4ea..93bbcb0668f 100644
--- a/libgcc/config/nds32/isr-library/vec_vid28.S
+++ b/libgcc/config/nds32/isr-library/vec_vid28.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.28, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_28
.type _nds32_vector_28, @function
_nds32_vector_28:
diff --git a/libgcc/config/nds32/isr-library/vec_vid28_4b.S b/libgcc/config/nds32/isr-library/vec_vid28_4b.S
index 2cf63aaf0b7..677a6feabd7 100644
--- a/libgcc/config/nds32/isr-library/vec_vid28_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid28_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid29.S b/libgcc/config/nds32/isr-library/vec_vid29.S
index 7119e254afc..08734ef432e 100644
--- a/libgcc/config/nds32/isr-library/vec_vid29.S
+++ b/libgcc/config/nds32/isr-library/vec_vid29.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.29, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_29
.type _nds32_vector_29, @function
_nds32_vector_29:
diff --git a/libgcc/config/nds32/isr-library/vec_vid29_4b.S b/libgcc/config/nds32/isr-library/vec_vid29_4b.S
index 29d2f1bdcf9..f9d5f93b07b 100644
--- a/libgcc/config/nds32/isr-library/vec_vid29_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid29_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid30.S b/libgcc/config/nds32/isr-library/vec_vid30.S
index 7c7bd5fd191..8afec7f9c7f 100644
--- a/libgcc/config/nds32/isr-library/vec_vid30.S
+++ b/libgcc/config/nds32/isr-library/vec_vid30.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.30, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_30
.type _nds32_vector_30, @function
_nds32_vector_30:
diff --git a/libgcc/config/nds32/isr-library/vec_vid30_4b.S b/libgcc/config/nds32/isr-library/vec_vid30_4b.S
index 43ed2e7fdde..f2e2b477bec 100644
--- a/libgcc/config/nds32/isr-library/vec_vid30_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid30_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid31.S b/libgcc/config/nds32/isr-library/vec_vid31.S
index bd29e03c4b8..ac9f7905bf5 100644
--- a/libgcc/config/nds32/isr-library/vec_vid31.S
+++ b/libgcc/config/nds32/isr-library/vec_vid31.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.31, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_31
.type _nds32_vector_31, @function
_nds32_vector_31:
diff --git a/libgcc/config/nds32/isr-library/vec_vid31_4b.S b/libgcc/config/nds32/isr-library/vec_vid31_4b.S
index ac476272e21..36189071ca0 100644
--- a/libgcc/config/nds32/isr-library/vec_vid31_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid31_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid32.S b/libgcc/config/nds32/isr-library/vec_vid32.S
index 57b8db0bbe4..c5e092dbeac 100644
--- a/libgcc/config/nds32/isr-library/vec_vid32.S
+++ b/libgcc/config/nds32/isr-library/vec_vid32.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.32, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_32
.type _nds32_vector_32, @function
_nds32_vector_32:
diff --git a/libgcc/config/nds32/isr-library/vec_vid32_4b.S b/libgcc/config/nds32/isr-library/vec_vid32_4b.S
index f251a185fee..f6049498a7d 100644
--- a/libgcc/config/nds32/isr-library/vec_vid32_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid32_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid33.S b/libgcc/config/nds32/isr-library/vec_vid33.S
index 609735e731d..b20df6db609 100644
--- a/libgcc/config/nds32/isr-library/vec_vid33.S
+++ b/libgcc/config/nds32/isr-library/vec_vid33.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.33, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_33
.type _nds32_vector_33, @function
_nds32_vector_33:
diff --git a/libgcc/config/nds32/isr-library/vec_vid33_4b.S b/libgcc/config/nds32/isr-library/vec_vid33_4b.S
index d05386826d4..6d30ad2b61b 100644
--- a/libgcc/config/nds32/isr-library/vec_vid33_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid33_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid34.S b/libgcc/config/nds32/isr-library/vec_vid34.S
index 2a91328fb11..78b8e79bd43 100644
--- a/libgcc/config/nds32/isr-library/vec_vid34.S
+++ b/libgcc/config/nds32/isr-library/vec_vid34.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.34, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_34
.type _nds32_vector_34, @function
_nds32_vector_34:
diff --git a/libgcc/config/nds32/isr-library/vec_vid34_4b.S b/libgcc/config/nds32/isr-library/vec_vid34_4b.S
index e8b3fcc95a6..8fc3e8758cf 100644
--- a/libgcc/config/nds32/isr-library/vec_vid34_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid34_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid35.S b/libgcc/config/nds32/isr-library/vec_vid35.S
index 65dd081d7b3..bff7650bca8 100644
--- a/libgcc/config/nds32/isr-library/vec_vid35.S
+++ b/libgcc/config/nds32/isr-library/vec_vid35.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.35, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_35
.type _nds32_vector_35, @function
_nds32_vector_35:
diff --git a/libgcc/config/nds32/isr-library/vec_vid35_4b.S b/libgcc/config/nds32/isr-library/vec_vid35_4b.S
index 37cf519b560..65b95ff5ae7 100644
--- a/libgcc/config/nds32/isr-library/vec_vid35_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid35_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid36.S b/libgcc/config/nds32/isr-library/vec_vid36.S
index fa47b8e879c..3005682a4d8 100644
--- a/libgcc/config/nds32/isr-library/vec_vid36.S
+++ b/libgcc/config/nds32/isr-library/vec_vid36.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.36, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_36
.type _nds32_vector_36, @function
_nds32_vector_36:
diff --git a/libgcc/config/nds32/isr-library/vec_vid36_4b.S b/libgcc/config/nds32/isr-library/vec_vid36_4b.S
index b76fd938af9..601110e03d4 100644
--- a/libgcc/config/nds32/isr-library/vec_vid36_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid36_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid37.S b/libgcc/config/nds32/isr-library/vec_vid37.S
index ece845633f2..39b1b7a37e3 100644
--- a/libgcc/config/nds32/isr-library/vec_vid37.S
+++ b/libgcc/config/nds32/isr-library/vec_vid37.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.37, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_37
.type _nds32_vector_37, @function
_nds32_vector_37:
diff --git a/libgcc/config/nds32/isr-library/vec_vid37_4b.S b/libgcc/config/nds32/isr-library/vec_vid37_4b.S
index 8fb752015d6..6cb6a8a0e31 100644
--- a/libgcc/config/nds32/isr-library/vec_vid37_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid37_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid38.S b/libgcc/config/nds32/isr-library/vec_vid38.S
index c4a12f574ef..757c26f2323 100644
--- a/libgcc/config/nds32/isr-library/vec_vid38.S
+++ b/libgcc/config/nds32/isr-library/vec_vid38.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.38, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_38
.type _nds32_vector_38, @function
_nds32_vector_38:
diff --git a/libgcc/config/nds32/isr-library/vec_vid38_4b.S b/libgcc/config/nds32/isr-library/vec_vid38_4b.S
index 74210a3e6ba..acadb443902 100644
--- a/libgcc/config/nds32/isr-library/vec_vid38_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid38_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid39.S b/libgcc/config/nds32/isr-library/vec_vid39.S
index b3e56ed7077..7db4fe4c0f7 100644
--- a/libgcc/config/nds32/isr-library/vec_vid39.S
+++ b/libgcc/config/nds32/isr-library/vec_vid39.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.39, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_39
.type _nds32_vector_39, @function
_nds32_vector_39:
diff --git a/libgcc/config/nds32/isr-library/vec_vid39_4b.S b/libgcc/config/nds32/isr-library/vec_vid39_4b.S
index f8e867117a1..1035af99c80 100644
--- a/libgcc/config/nds32/isr-library/vec_vid39_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid39_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid40.S b/libgcc/config/nds32/isr-library/vec_vid40.S
index 01364aa4909..13ab9e2fc44 100644
--- a/libgcc/config/nds32/isr-library/vec_vid40.S
+++ b/libgcc/config/nds32/isr-library/vec_vid40.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.40, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_40
.type _nds32_vector_40, @function
_nds32_vector_40:
diff --git a/libgcc/config/nds32/isr-library/vec_vid40_4b.S b/libgcc/config/nds32/isr-library/vec_vid40_4b.S
index 6fe6d3c54b3..7477d2eb6c5 100644
--- a/libgcc/config/nds32/isr-library/vec_vid40_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid40_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid41.S b/libgcc/config/nds32/isr-library/vec_vid41.S
index f20beec98c0..2970f31e82f 100644
--- a/libgcc/config/nds32/isr-library/vec_vid41.S
+++ b/libgcc/config/nds32/isr-library/vec_vid41.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.41, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_41
.type _nds32_vector_41, @function
_nds32_vector_41:
diff --git a/libgcc/config/nds32/isr-library/vec_vid41_4b.S b/libgcc/config/nds32/isr-library/vec_vid41_4b.S
index 0d9c40ae190..baf35230bce 100644
--- a/libgcc/config/nds32/isr-library/vec_vid41_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid41_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid42.S b/libgcc/config/nds32/isr-library/vec_vid42.S
index 6c29f1ff5a4..6e0a9732468 100644
--- a/libgcc/config/nds32/isr-library/vec_vid42.S
+++ b/libgcc/config/nds32/isr-library/vec_vid42.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.42, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_42
.type _nds32_vector_42, @function
_nds32_vector_42:
diff --git a/libgcc/config/nds32/isr-library/vec_vid42_4b.S b/libgcc/config/nds32/isr-library/vec_vid42_4b.S
index eaf5d158586..b9d108db2b7 100644
--- a/libgcc/config/nds32/isr-library/vec_vid42_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid42_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid43.S b/libgcc/config/nds32/isr-library/vec_vid43.S
index 8767f998513..cb3b2862ddb 100644
--- a/libgcc/config/nds32/isr-library/vec_vid43.S
+++ b/libgcc/config/nds32/isr-library/vec_vid43.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.43, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_43
.type _nds32_vector_43, @function
_nds32_vector_43:
diff --git a/libgcc/config/nds32/isr-library/vec_vid43_4b.S b/libgcc/config/nds32/isr-library/vec_vid43_4b.S
index e4eaebee0a4..d2fedf99a54 100644
--- a/libgcc/config/nds32/isr-library/vec_vid43_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid43_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid44.S b/libgcc/config/nds32/isr-library/vec_vid44.S
index 8b6f53db5a8..37f3488d7ad 100644
--- a/libgcc/config/nds32/isr-library/vec_vid44.S
+++ b/libgcc/config/nds32/isr-library/vec_vid44.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.44, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_44
.type _nds32_vector_44, @function
_nds32_vector_44:
diff --git a/libgcc/config/nds32/isr-library/vec_vid44_4b.S b/libgcc/config/nds32/isr-library/vec_vid44_4b.S
index 296520976b0..ce0e4ff1002 100644
--- a/libgcc/config/nds32/isr-library/vec_vid44_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid44_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid45.S b/libgcc/config/nds32/isr-library/vec_vid45.S
index 52e344b0de4..3cfbd17817d 100644
--- a/libgcc/config/nds32/isr-library/vec_vid45.S
+++ b/libgcc/config/nds32/isr-library/vec_vid45.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.45, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_45
.type _nds32_vector_45, @function
_nds32_vector_45:
diff --git a/libgcc/config/nds32/isr-library/vec_vid45_4b.S b/libgcc/config/nds32/isr-library/vec_vid45_4b.S
index 4019384040f..f41e88231d3 100644
--- a/libgcc/config/nds32/isr-library/vec_vid45_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid45_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid46.S b/libgcc/config/nds32/isr-library/vec_vid46.S
index f9dc0d11382..8dcc333244b 100644
--- a/libgcc/config/nds32/isr-library/vec_vid46.S
+++ b/libgcc/config/nds32/isr-library/vec_vid46.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.46, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_46
.type _nds32_vector_46, @function
_nds32_vector_46:
diff --git a/libgcc/config/nds32/isr-library/vec_vid46_4b.S b/libgcc/config/nds32/isr-library/vec_vid46_4b.S
index 396de07ad6d..551b201d382 100644
--- a/libgcc/config/nds32/isr-library/vec_vid46_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid46_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid47.S b/libgcc/config/nds32/isr-library/vec_vid47.S
index 436e7e3a977..d75fa18174c 100644
--- a/libgcc/config/nds32/isr-library/vec_vid47.S
+++ b/libgcc/config/nds32/isr-library/vec_vid47.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.47, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_47
.type _nds32_vector_47, @function
_nds32_vector_47:
diff --git a/libgcc/config/nds32/isr-library/vec_vid47_4b.S b/libgcc/config/nds32/isr-library/vec_vid47_4b.S
index 1e13e8e906d..34942341230 100644
--- a/libgcc/config/nds32/isr-library/vec_vid47_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid47_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid48.S b/libgcc/config/nds32/isr-library/vec_vid48.S
index 219dfd49b19..d365c5cd89f 100644
--- a/libgcc/config/nds32/isr-library/vec_vid48.S
+++ b/libgcc/config/nds32/isr-library/vec_vid48.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.48, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_48
.type _nds32_vector_48, @function
_nds32_vector_48:
diff --git a/libgcc/config/nds32/isr-library/vec_vid48_4b.S b/libgcc/config/nds32/isr-library/vec_vid48_4b.S
index 5935dfb00a4..1735d605642 100644
--- a/libgcc/config/nds32/isr-library/vec_vid48_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid48_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid49.S b/libgcc/config/nds32/isr-library/vec_vid49.S
index e3ba7537f08..40eb7ea4c00 100644
--- a/libgcc/config/nds32/isr-library/vec_vid49.S
+++ b/libgcc/config/nds32/isr-library/vec_vid49.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.49, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_49
.type _nds32_vector_49, @function
_nds32_vector_49:
diff --git a/libgcc/config/nds32/isr-library/vec_vid49_4b.S b/libgcc/config/nds32/isr-library/vec_vid49_4b.S
index ea2c5db4ac1..532d71bbe9b 100644
--- a/libgcc/config/nds32/isr-library/vec_vid49_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid49_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid50.S b/libgcc/config/nds32/isr-library/vec_vid50.S
index b0b3fc2b73f..5b4aeb1c5cc 100644
--- a/libgcc/config/nds32/isr-library/vec_vid50.S
+++ b/libgcc/config/nds32/isr-library/vec_vid50.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.50, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_50
.type _nds32_vector_50, @function
_nds32_vector_50:
diff --git a/libgcc/config/nds32/isr-library/vec_vid50_4b.S b/libgcc/config/nds32/isr-library/vec_vid50_4b.S
index e90babf03d7..2c2537add89 100644
--- a/libgcc/config/nds32/isr-library/vec_vid50_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid50_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid51.S b/libgcc/config/nds32/isr-library/vec_vid51.S
index bf3011d5ccb..5428269ecfa 100644
--- a/libgcc/config/nds32/isr-library/vec_vid51.S
+++ b/libgcc/config/nds32/isr-library/vec_vid51.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.51, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_51
.type _nds32_vector_51, @function
_nds32_vector_51:
diff --git a/libgcc/config/nds32/isr-library/vec_vid51_4b.S b/libgcc/config/nds32/isr-library/vec_vid51_4b.S
index 25d18311c99..cf8429d0c1a 100644
--- a/libgcc/config/nds32/isr-library/vec_vid51_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid51_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid52.S b/libgcc/config/nds32/isr-library/vec_vid52.S
index eaf5f14ef25..ab1c54037fc 100644
--- a/libgcc/config/nds32/isr-library/vec_vid52.S
+++ b/libgcc/config/nds32/isr-library/vec_vid52.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.52, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_52
.type _nds32_vector_52, @function
_nds32_vector_52:
diff --git a/libgcc/config/nds32/isr-library/vec_vid52_4b.S b/libgcc/config/nds32/isr-library/vec_vid52_4b.S
index e84f0de88b7..3c5df348642 100644
--- a/libgcc/config/nds32/isr-library/vec_vid52_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid52_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid53.S b/libgcc/config/nds32/isr-library/vec_vid53.S
index 3f92e56d665..b87f5248c60 100644
--- a/libgcc/config/nds32/isr-library/vec_vid53.S
+++ b/libgcc/config/nds32/isr-library/vec_vid53.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.53, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_53
.type _nds32_vector_53, @function
_nds32_vector_53:
diff --git a/libgcc/config/nds32/isr-library/vec_vid53_4b.S b/libgcc/config/nds32/isr-library/vec_vid53_4b.S
index 8ad4c4e06a0..03fa679d7c2 100644
--- a/libgcc/config/nds32/isr-library/vec_vid53_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid53_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid54.S b/libgcc/config/nds32/isr-library/vec_vid54.S
index f22793fe3f2..ab427bb48d3 100644
--- a/libgcc/config/nds32/isr-library/vec_vid54.S
+++ b/libgcc/config/nds32/isr-library/vec_vid54.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.54, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_54
.type _nds32_vector_54, @function
_nds32_vector_54:
diff --git a/libgcc/config/nds32/isr-library/vec_vid54_4b.S b/libgcc/config/nds32/isr-library/vec_vid54_4b.S
index a00919d4e77..3cb183b2c24 100644
--- a/libgcc/config/nds32/isr-library/vec_vid54_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid54_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid55.S b/libgcc/config/nds32/isr-library/vec_vid55.S
index 1017130a9da..9529fc75567 100644
--- a/libgcc/config/nds32/isr-library/vec_vid55.S
+++ b/libgcc/config/nds32/isr-library/vec_vid55.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.55, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_55
.type _nds32_vector_55, @function
_nds32_vector_55:
diff --git a/libgcc/config/nds32/isr-library/vec_vid55_4b.S b/libgcc/config/nds32/isr-library/vec_vid55_4b.S
index 7ee99ee8ec0..0a3a50cc834 100644
--- a/libgcc/config/nds32/isr-library/vec_vid55_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid55_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid56.S b/libgcc/config/nds32/isr-library/vec_vid56.S
index a0923e9e791..7957f67df94 100644
--- a/libgcc/config/nds32/isr-library/vec_vid56.S
+++ b/libgcc/config/nds32/isr-library/vec_vid56.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.56, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_56
.type _nds32_vector_56, @function
_nds32_vector_56:
diff --git a/libgcc/config/nds32/isr-library/vec_vid56_4b.S b/libgcc/config/nds32/isr-library/vec_vid56_4b.S
index 628656434d1..a5fff73975b 100644
--- a/libgcc/config/nds32/isr-library/vec_vid56_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid56_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid57.S b/libgcc/config/nds32/isr-library/vec_vid57.S
index e711b890ef4..ff4cb320df7 100644
--- a/libgcc/config/nds32/isr-library/vec_vid57.S
+++ b/libgcc/config/nds32/isr-library/vec_vid57.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.57, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_57
.type _nds32_vector_57, @function
_nds32_vector_57:
diff --git a/libgcc/config/nds32/isr-library/vec_vid57_4b.S b/libgcc/config/nds32/isr-library/vec_vid57_4b.S
index 87e66e793b1..c3a99c4ad31 100644
--- a/libgcc/config/nds32/isr-library/vec_vid57_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid57_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid58.S b/libgcc/config/nds32/isr-library/vec_vid58.S
index f8d90643af1..7544fbb93bb 100644
--- a/libgcc/config/nds32/isr-library/vec_vid58.S
+++ b/libgcc/config/nds32/isr-library/vec_vid58.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.58, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_58
.type _nds32_vector_58, @function
_nds32_vector_58:
diff --git a/libgcc/config/nds32/isr-library/vec_vid58_4b.S b/libgcc/config/nds32/isr-library/vec_vid58_4b.S
index ed5c2c7116e..f9dee5b8b66 100644
--- a/libgcc/config/nds32/isr-library/vec_vid58_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid58_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid59.S b/libgcc/config/nds32/isr-library/vec_vid59.S
index 58fb6e626e3..282fd4a7e7b 100644
--- a/libgcc/config/nds32/isr-library/vec_vid59.S
+++ b/libgcc/config/nds32/isr-library/vec_vid59.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.59, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_59
.type _nds32_vector_59, @function
_nds32_vector_59:
diff --git a/libgcc/config/nds32/isr-library/vec_vid59_4b.S b/libgcc/config/nds32/isr-library/vec_vid59_4b.S
index 800c694e9fc..9c9b07fd232 100644
--- a/libgcc/config/nds32/isr-library/vec_vid59_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid59_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid60.S b/libgcc/config/nds32/isr-library/vec_vid60.S
index 94aa6e0ef7a..04b73d81a61 100644
--- a/libgcc/config/nds32/isr-library/vec_vid60.S
+++ b/libgcc/config/nds32/isr-library/vec_vid60.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.60, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_60
.type _nds32_vector_60, @function
_nds32_vector_60:
diff --git a/libgcc/config/nds32/isr-library/vec_vid60_4b.S b/libgcc/config/nds32/isr-library/vec_vid60_4b.S
index 14072521fae..4bc2a9f20fa 100644
--- a/libgcc/config/nds32/isr-library/vec_vid60_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid60_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid61.S b/libgcc/config/nds32/isr-library/vec_vid61.S
index 869f6c86514..c44cadbba69 100644
--- a/libgcc/config/nds32/isr-library/vec_vid61.S
+++ b/libgcc/config/nds32/isr-library/vec_vid61.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.61, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_61
.type _nds32_vector_61, @function
_nds32_vector_61:
diff --git a/libgcc/config/nds32/isr-library/vec_vid61_4b.S b/libgcc/config/nds32/isr-library/vec_vid61_4b.S
index 1f611d0e533..ef936a71095 100644
--- a/libgcc/config/nds32/isr-library/vec_vid61_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid61_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid62.S b/libgcc/config/nds32/isr-library/vec_vid62.S
index acc846c320b..f577895a38f 100644
--- a/libgcc/config/nds32/isr-library/vec_vid62.S
+++ b/libgcc/config/nds32/isr-library/vec_vid62.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.62, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_62
.type _nds32_vector_62, @function
_nds32_vector_62:
diff --git a/libgcc/config/nds32/isr-library/vec_vid62_4b.S b/libgcc/config/nds32/isr-library/vec_vid62_4b.S
index a263c95412a..0bc4ab6a243 100644
--- a/libgcc/config/nds32/isr-library/vec_vid62_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid62_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid63.S b/libgcc/config/nds32/isr-library/vec_vid63.S
index d0727ecdd08..52f55d101db 100644
--- a/libgcc/config/nds32/isr-library/vec_vid63.S
+++ b/libgcc/config/nds32/isr-library/vec_vid63.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.63, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_63
.type _nds32_vector_63, @function
_nds32_vector_63:
diff --git a/libgcc/config/nds32/isr-library/vec_vid63_4b.S b/libgcc/config/nds32/isr-library/vec_vid63_4b.S
index 78c733bdc0f..0ff2ff4b661 100644
--- a/libgcc/config/nds32/isr-library/vec_vid63_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid63_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid64.S b/libgcc/config/nds32/isr-library/vec_vid64.S
index cb1659ad3ee..d0b42aa58db 100644
--- a/libgcc/config/nds32/isr-library/vec_vid64.S
+++ b/libgcc/config/nds32/isr-library/vec_vid64.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.64, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_64
.type _nds32_vector_64, @function
_nds32_vector_64:
diff --git a/libgcc/config/nds32/isr-library/vec_vid64_4b.S b/libgcc/config/nds32/isr-library/vec_vid64_4b.S
index c484671dd5d..0d8ab4a5597 100644
--- a/libgcc/config/nds32/isr-library/vec_vid64_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid64_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid65.S b/libgcc/config/nds32/isr-library/vec_vid65.S
index da46481ec02..28344a8a304 100644
--- a/libgcc/config/nds32/isr-library/vec_vid65.S
+++ b/libgcc/config/nds32/isr-library/vec_vid65.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.65, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_65
.type _nds32_vector_65, @function
_nds32_vector_65:
diff --git a/libgcc/config/nds32/isr-library/vec_vid65_4b.S b/libgcc/config/nds32/isr-library/vec_vid65_4b.S
index 3e525f56f99..1cbd7809905 100644
--- a/libgcc/config/nds32/isr-library/vec_vid65_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid65_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid66.S b/libgcc/config/nds32/isr-library/vec_vid66.S
index a8c18b804b3..dd39ccadd90 100644
--- a/libgcc/config/nds32/isr-library/vec_vid66.S
+++ b/libgcc/config/nds32/isr-library/vec_vid66.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.66, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_66
.type _nds32_vector_66, @function
_nds32_vector_66:
diff --git a/libgcc/config/nds32/isr-library/vec_vid66_4b.S b/libgcc/config/nds32/isr-library/vec_vid66_4b.S
index 3bff4869295..1d68bc3ccc8 100644
--- a/libgcc/config/nds32/isr-library/vec_vid66_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid66_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid67.S b/libgcc/config/nds32/isr-library/vec_vid67.S
index d2996a375ee..4fac19a111d 100644
--- a/libgcc/config/nds32/isr-library/vec_vid67.S
+++ b/libgcc/config/nds32/isr-library/vec_vid67.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.67, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_67
.type _nds32_vector_67, @function
_nds32_vector_67:
diff --git a/libgcc/config/nds32/isr-library/vec_vid67_4b.S b/libgcc/config/nds32/isr-library/vec_vid67_4b.S
index 6e9f0b7ae60..43bf5196620 100644
--- a/libgcc/config/nds32/isr-library/vec_vid67_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid67_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid68.S b/libgcc/config/nds32/isr-library/vec_vid68.S
index 0c9de86b1d7..8649b42b376 100644
--- a/libgcc/config/nds32/isr-library/vec_vid68.S
+++ b/libgcc/config/nds32/isr-library/vec_vid68.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.68, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_68
.type _nds32_vector_68, @function
_nds32_vector_68:
diff --git a/libgcc/config/nds32/isr-library/vec_vid68_4b.S b/libgcc/config/nds32/isr-library/vec_vid68_4b.S
index b9180c1c22d..daf0811f4ce 100644
--- a/libgcc/config/nds32/isr-library/vec_vid68_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid68_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid69.S b/libgcc/config/nds32/isr-library/vec_vid69.S
index 43cf748d442..1bbcae43bb4 100644
--- a/libgcc/config/nds32/isr-library/vec_vid69.S
+++ b/libgcc/config/nds32/isr-library/vec_vid69.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.69, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_69
.type _nds32_vector_69, @function
_nds32_vector_69:
diff --git a/libgcc/config/nds32/isr-library/vec_vid69_4b.S b/libgcc/config/nds32/isr-library/vec_vid69_4b.S
index 4cd13ba9923..9511ae73674 100644
--- a/libgcc/config/nds32/isr-library/vec_vid69_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid69_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid70.S b/libgcc/config/nds32/isr-library/vec_vid70.S
index aba3e6aede0..f115d8f978b 100644
--- a/libgcc/config/nds32/isr-library/vec_vid70.S
+++ b/libgcc/config/nds32/isr-library/vec_vid70.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.70, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_70
.type _nds32_vector_70, @function
_nds32_vector_70:
diff --git a/libgcc/config/nds32/isr-library/vec_vid70_4b.S b/libgcc/config/nds32/isr-library/vec_vid70_4b.S
index 0c5661f9833..9fea5bde793 100644
--- a/libgcc/config/nds32/isr-library/vec_vid70_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid70_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid71.S b/libgcc/config/nds32/isr-library/vec_vid71.S
index be8aaa52534..be1ad352c2f 100644
--- a/libgcc/config/nds32/isr-library/vec_vid71.S
+++ b/libgcc/config/nds32/isr-library/vec_vid71.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.71, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_71
.type _nds32_vector_71, @function
_nds32_vector_71:
diff --git a/libgcc/config/nds32/isr-library/vec_vid71_4b.S b/libgcc/config/nds32/isr-library/vec_vid71_4b.S
index 922359d3f45..9e6247d7755 100644
--- a/libgcc/config/nds32/isr-library/vec_vid71_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid71_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid72.S b/libgcc/config/nds32/isr-library/vec_vid72.S
index 041c89517e3..f7ddd5b122f 100644
--- a/libgcc/config/nds32/isr-library/vec_vid72.S
+++ b/libgcc/config/nds32/isr-library/vec_vid72.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -24,8 +24,15 @@
<http://www.gnu.org/licenses/>. */
.section .nds32_vector.72, "ax"
+#if __NDS32_ISR_VECTOR_SIZE_4__
+ /* The vector size is default 4-byte for v3 architecture. */
+ .vec_size 4
+ .align 2
+#else
+ /* The vector size is default 16-byte for other architectures. */
.vec_size 16
.align 4
+#endif
.weak _nds32_vector_72
.type _nds32_vector_72, @function
_nds32_vector_72:
diff --git a/libgcc/config/nds32/isr-library/vec_vid72_4b.S b/libgcc/config/nds32/isr-library/vec_vid72_4b.S
index 7c2778a2c27..b523fc0bdf1 100644
--- a/libgcc/config/nds32/isr-library/vec_vid72_4b.S
+++ b/libgcc/config/nds32/isr-library/vec_vid72_4b.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/wrh.S b/libgcc/config/nds32/isr-library/wrh.S
index d671fb7e0cd..5dcbf341650 100644
--- a/libgcc/config/nds32/isr-library/wrh.S
+++ b/libgcc/config/nds32/isr-library/wrh.S
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/lib1asmsrc-mculib.S b/libgcc/config/nds32/lib1asmsrc-mculib.S
index a4b474aa0f3..a637d910a42 100644
--- a/libgcc/config/nds32/lib1asmsrc-mculib.S
+++ b/libgcc/config/nds32/lib1asmsrc-mculib.S
@@ -1,5 +1,5 @@
/* mculib libgcc routines of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/lib1asmsrc-newlib.S b/libgcc/config/nds32/lib1asmsrc-newlib.S
index b8f4c533252..24c276bbe88 100644
--- a/libgcc/config/nds32/lib1asmsrc-newlib.S
+++ b/libgcc/config/nds32/lib1asmsrc-newlib.S
@@ -1,5 +1,5 @@
/* newlib libgcc routines of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c b/libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c
index 60ef86ae1a8..4d36b147d4d 100644
--- a/libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c
+++ b/libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c
@@ -1,5 +1,5 @@
/* mculib libgcc routines of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c b/libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c
index 786f8b803da..eb89aefd863 100644
--- a/libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c
+++ b/libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c
@@ -1,5 +1,5 @@
/* mculib libgcc routines of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/linux-atomic.c b/libgcc/config/nds32/linux-atomic.c
index 6da7be9a653..aaccfa9b6c2 100644
--- a/libgcc/config/nds32/linux-atomic.c
+++ b/libgcc/config/nds32/linux-atomic.c
@@ -1,5 +1,5 @@
/* Linux-specific atomic operations for NDS32 Linux.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/nds32/linux-unwind.h b/libgcc/config/nds32/linux-unwind.h
index 921edf906ea..adb6f9f450b 100644
--- a/libgcc/config/nds32/linux-unwind.h
+++ b/libgcc/config/nds32/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for NDS32 Linux signal frame.
- Copyright (C) 2014-2015 Free Software Foundation, Inc.
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
@@ -32,21 +32,17 @@
#include <signal.h>
#include <asm/unistd.h>
+#include <sys/ucontext.h>
/* Exactly the same layout as the kernel structures, unique names. */
/* arch/nds32/kernel/signal.c */
-struct _sigframe {
- struct ucontext uc;
- unsigned long retcode;
-};
-
struct _rt_sigframe {
siginfo_t info;
- struct _sigframe sig;
+ struct ucontext_t uc;
};
-#define SIGRETURN 0xeb0e0a64
-#define RT_SIGRETURN 0xab150a64
+
+#define RT_SIGRETURN 0x8b00f044
#define MD_FALLBACK_FRAME_STATE_FOR nds32_fallback_frame_state
@@ -77,23 +73,14 @@ nds32_fallback_frame_state (struct _Unwind_Context *context,
/* Check if we are going through a signal handler.
See arch/nds32/kernel/signal.c implementation.
- SWI_SYS_SIGRETURN -> (0xeb0e0a64)
- SWI_SYS_RT_SIGRETURN -> (0xab150a64)
FIXME: Currently we only handle little endian (EL) case. */
- if (pc[0] == SIGRETURN)
+ if (pc[0] == RT_SIGRETURN)
{
/* Using '_sigfame' memory address to locate kernal's sigcontext.
The sigcontext structures in arch/nds32/include/asm/sigcontext.h. */
- struct _sigframe *rt_;
- rt_ = context->cfa;
- sc_ = &rt_->uc.uc_mcontext;
- }
- else if (pc[0] == RT_SIGRETURN)
- {
- /* Using '_sigfame' memory address to locate kernal's sigcontext. */
struct _rt_sigframe *rt_;
rt_ = context->cfa;
- sc_ = &rt_->sig.uc.uc_mcontext;
+ sc_ = &rt_->uc.uc_mcontext;
}
else
return _URC_END_OF_STACK;
diff --git a/libgcc/config/nds32/sfp-machine.h b/libgcc/config/nds32/sfp-machine.h
index bfbdaf9c3bf..eee285692fb 100644
--- a/libgcc/config/nds32/sfp-machine.h
+++ b/libgcc/config/nds32/sfp-machine.h
@@ -1,6 +1,6 @@
/* Machine settings for software floating-point emulation
of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GNU C Library.
diff --git a/libgcc/config/nds32/t-nds32 b/libgcc/config/nds32/t-nds32
index 49afb05b753..b1bdee1b6c6 100644
--- a/libgcc/config/nds32/t-nds32
+++ b/libgcc/config/nds32/t-nds32
@@ -1,5 +1,5 @@
# Rules of libgcc and crtstuff of Andes NDS32 cpu for GNU compiler
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 Free Software Foundation, Inc.
# Contributed by Andes Technology Corporation.
#
# This file is part of GCC.
diff --git a/libgcc/config/nds32/t-nds32-glibc b/libgcc/config/nds32/t-nds32-glibc
new file mode 100644
index 00000000000..15d33c39019
--- /dev/null
+++ b/libgcc/config/nds32/t-nds32-glibc
@@ -0,0 +1,34 @@
+# Rules of glibc library makefile of Andes NDS32 cpu for GNU compiler
+# Copyright (C) 2012-2019 Free Software Foundation, Inc.
+# Contributed by Andes Technology Corporation.
+#
+# 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/>.
+
+# Compiler flags to use when compiling 'libgcc2.c'
+HOST_LIBGCC2_CFLAGS = -O2 -fPIC -fwrapv
+LIB2ADD += $(srcdir)/config/nds32/linux-atomic.c
+
+#LIB1ASMSRC = nds32/lib1asmsrc-newlib.S
+#LIB1ASMFUNCS = _divsi3 _modsi3 _udivsi3 _umodsi3
+
+# List of functions not to build from libgcc2.c.
+#LIB2FUNCS_EXCLUDE = _clzsi2
+
+# List of extra C and assembler files(*.S) to add to static libgcc2.
+#LIB2ADD_ST += $(srcdir)/config/nds32/lib2csrc-newlib/_clzsi2.c
+
+# ------------------------------------------------------------------------
diff --git a/libgcc/config/nds32/t-nds32-isr b/libgcc/config/nds32/t-nds32-isr
index 4f86f900395..30a781d4255 100644
--- a/libgcc/config/nds32/t-nds32-isr
+++ b/libgcc/config/nds32/t-nds32-isr
@@ -1,5 +1,5 @@
# Rules of c-isr library stuff of Andes NDS32 cpu for GNU compiler
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 Free Software Foundation, Inc.
# Contributed by Andes Technology Corporation.
#
# This file is part of GCC.
@@ -23,11 +23,11 @@
# Makfile fragment rules for libnds32_isr.a to support ISR attribute extension
###############################################################################
-# basic flags setting
+# Basic flags setting.
ISR_CFLAGS = $(CFLAGS) -c
-# the object files we would like to create
-LIBNDS32_ISR_16B_OBJS = \
+# The object files we would like to create.
+LIBNDS32_ISR_VEC_OBJS = \
vec_vid00.o vec_vid01.o vec_vid02.o vec_vid03.o \
vec_vid04.o vec_vid05.o vec_vid06.o vec_vid07.o \
vec_vid08.o vec_vid09.o vec_vid10.o vec_vid11.o \
@@ -46,40 +46,9 @@ LIBNDS32_ISR_16B_OBJS = \
vec_vid60.o vec_vid61.o vec_vid62.o vec_vid63.o \
vec_vid64.o vec_vid65.o vec_vid66.o vec_vid67.o \
vec_vid68.o vec_vid69.o vec_vid70.o vec_vid71.o \
- vec_vid72.o \
- excp_isr_ps_nn.o excp_isr_ps_ns.o excp_isr_ps_nr.o \
- excp_isr_sa_nn.o excp_isr_sa_ns.o excp_isr_sa_nr.o \
- intr_isr_ps_nn.o intr_isr_ps_ns.o intr_isr_ps_nr.o \
- intr_isr_sa_nn.o intr_isr_sa_ns.o intr_isr_sa_nr.o \
- reset.o
-
-LIBNDS32_ISR_4B_OBJS = \
- vec_vid00_4b.o vec_vid01_4b.o vec_vid02_4b.o vec_vid03_4b.o \
- vec_vid04_4b.o vec_vid05_4b.o vec_vid06_4b.o vec_vid07_4b.o \
- vec_vid08_4b.o vec_vid09_4b.o vec_vid10_4b.o vec_vid11_4b.o \
- vec_vid12_4b.o vec_vid13_4b.o vec_vid14_4b.o vec_vid15_4b.o \
- vec_vid16_4b.o vec_vid17_4b.o vec_vid18_4b.o vec_vid19_4b.o \
- vec_vid20_4b.o vec_vid21_4b.o vec_vid22_4b.o vec_vid23_4b.o \
- vec_vid24_4b.o vec_vid25_4b.o vec_vid26_4b.o vec_vid27_4b.o \
- vec_vid28_4b.o vec_vid29_4b.o vec_vid30_4b.o vec_vid31_4b.o \
- vec_vid32_4b.o vec_vid33_4b.o vec_vid34_4b.o vec_vid35_4b.o \
- vec_vid36_4b.o vec_vid37_4b.o vec_vid38_4b.o vec_vid39_4b.o \
- vec_vid40_4b.o vec_vid41_4b.o vec_vid42_4b.o vec_vid43_4b.o \
- vec_vid44_4b.o vec_vid45_4b.o vec_vid46_4b.o vec_vid47_4b.o \
- vec_vid48_4b.o vec_vid49_4b.o vec_vid50_4b.o vec_vid51_4b.o \
- vec_vid52_4b.o vec_vid53_4b.o vec_vid54_4b.o vec_vid55_4b.o \
- vec_vid56_4b.o vec_vid57_4b.o vec_vid58_4b.o vec_vid59_4b.o \
- vec_vid60_4b.o vec_vid61_4b.o vec_vid62_4b.o vec_vid63_4b.o \
- vec_vid64_4b.o vec_vid65_4b.o vec_vid66_4b.o vec_vid67_4b.o \
- vec_vid68_4b.o vec_vid69_4b.o vec_vid70_4b.o vec_vid71_4b.o \
- vec_vid72_4b.o \
- excp_isr_ps_nn_4b.o excp_isr_ps_ns_4b.o excp_isr_ps_nr_4b.o \
- excp_isr_sa_nn_4b.o excp_isr_sa_ns_4b.o excp_isr_sa_nr_4b.o \
- intr_isr_ps_nn_4b.o intr_isr_ps_ns_4b.o intr_isr_ps_nr_4b.o \
- intr_isr_sa_nn_4b.o intr_isr_sa_ns_4b.o intr_isr_sa_nr_4b.o \
- reset_4b.o
+ vec_vid72.o
-LIBNDS32_ISR_COMMON_OBJS = \
+LIBNDS32_ISR_JMP_OBJS = \
jmptbl_vid00.o jmptbl_vid01.o jmptbl_vid02.o jmptbl_vid03.o \
jmptbl_vid04.o jmptbl_vid05.o jmptbl_vid06.o jmptbl_vid07.o \
jmptbl_vid08.o jmptbl_vid09.o jmptbl_vid10.o jmptbl_vid11.o \
@@ -98,29 +67,32 @@ LIBNDS32_ISR_COMMON_OBJS = \
jmptbl_vid60.o jmptbl_vid61.o jmptbl_vid62.o jmptbl_vid63.o \
jmptbl_vid64.o jmptbl_vid65.o jmptbl_vid66.o jmptbl_vid67.o \
jmptbl_vid68.o jmptbl_vid69.o jmptbl_vid70.o jmptbl_vid71.o \
- jmptbl_vid72.o \
+ jmptbl_vid72.o
+
+LIBNDS32_ISR_COMMON_OBJS = \
+ excp_isr_ps_nn.o excp_isr_ps_ns.o excp_isr_ps_nr.o \
+ excp_isr_sa_nn.o excp_isr_sa_ns.o excp_isr_sa_nr.o \
+ intr_isr_ps_nn.o intr_isr_ps_ns.o intr_isr_ps_nr.o \
+ intr_isr_sa_nn.o intr_isr_sa_ns.o intr_isr_sa_nr.o \
+ reset.o \
nmih.o \
wrh.o
-LIBNDS32_ISR_COMPLETE_OBJS = $(LIBNDS32_ISR_16B_OBJS) $(LIBNDS32_ISR_4B_OBJS) $(LIBNDS32_ISR_COMMON_OBJS)
+LIBNDS32_ISR_COMPLETE_OBJS = $(LIBNDS32_ISR_VEC_OBJS) $(LIBNDS32_ISR_JMP_OBJS) $(LIBNDS32_ISR_COMMON_OBJS)
-# Build common objects for ISR library
-nmih.o: $(srcdir)/config/nds32/isr-library/nmih.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/nmih.S -o nmih.o
-wrh.o: $(srcdir)/config/nds32/isr-library/wrh.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/wrh.S -o wrh.o
-
-jmptbl_vid%.o: $(srcdir)/config/nds32/isr-library/jmptbl_vid%.S
+# Build vector vid objects for ISR library.
+vec_vid%.o: $(srcdir)/config/nds32/isr-library/vec_vid%.S
$(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@
-
-# Build 16b version objects for ISR library. (no "_4b" postfix string)
-vec_vid%.o: $(srcdir)/config/nds32/isr-library/vec_vid%.S
+# Build jump table objects for ISR library.
+jmptbl_vid%.o: $(srcdir)/config/nds32/isr-library/jmptbl_vid%.S
$(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@
+
+# Build commen objects for ISR library.
excp_isr_ps_nn.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
$(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_nn.o
@@ -160,48 +132,12 @@ intr_isr_sa_nr.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
reset.o: $(srcdir)/config/nds32/isr-library/reset.S
$(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/reset.S -o reset.o
-# Build 4b version objects for ISR library.
-vec_vid%_4b.o: $(srcdir)/config/nds32/isr-library/vec_vid%_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@
-
-excp_isr_ps_nn_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_ps_nn_4b.o
-
-excp_isr_ps_ns_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_ps_ns_4b.o
-
-excp_isr_ps_nr_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_ps_nr_4b.o
-
-excp_isr_sa_nn_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_sa_nn_4b.o
-
-excp_isr_sa_ns_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_sa_ns_4b.o
-
-excp_isr_sa_nr_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_sa_nr_4b.o
-
-intr_isr_ps_nn_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_ps_nn_4b.o
-
-intr_isr_ps_ns_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_ps_ns_4b.o
-
-intr_isr_ps_nr_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_ps_nr_4b.o
-
-intr_isr_sa_nn_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_sa_nn_4b.o
-
-intr_isr_sa_ns_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_sa_ns_4b.o
+nmih.o: $(srcdir)/config/nds32/isr-library/nmih.S
+ $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/nmih.S -o nmih.o
-intr_isr_sa_nr_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_sa_nr_4b.o
+wrh.o: $(srcdir)/config/nds32/isr-library/wrh.S
+ $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/wrh.S -o wrh.o
-reset_4b.o: $(srcdir)/config/nds32/isr-library/reset_4b.S
- $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/reset_4b.S -o reset_4b.o
# The rule to create libnds32_isr.a file
diff --git a/libgcc/config/nds32/t-nds32-mculib b/libgcc/config/nds32/t-nds32-mculib
index a3016c28c9b..a8a3ac17e0f 100644
--- a/libgcc/config/nds32/t-nds32-mculib
+++ b/libgcc/config/nds32/t-nds32-mculib
@@ -1,5 +1,5 @@
# Rules of mculib library makefile of Andes NDS32 cpu for GNU compiler
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 Free Software Foundation, Inc.
# Contributed by Andes Technology Corporation.
#
# This file is part of GCC.
diff --git a/libgcc/config/nds32/t-nds32-newlib b/libgcc/config/nds32/t-nds32-newlib
index a59646fcff5..87a9ddedb10 100644
--- a/libgcc/config/nds32/t-nds32-newlib
+++ b/libgcc/config/nds32/t-nds32-newlib
@@ -1,5 +1,5 @@
# Rules of newlib library makefile of Andes NDS32 cpu for GNU compiler
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 Free Software Foundation, Inc.
# Contributed by Andes Technology Corporation.
#
# This file is part of GCC.
diff --git a/libgcc/config/nios2/crti.S b/libgcc/config/nios2/crti.S
index 43e77699e06..c97c545a5d6 100644
--- a/libgcc/config/nios2/crti.S
+++ b/libgcc/config/nios2/crti.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Jonah Graham (jgraham@altera.com).
Contributed by Mentor Graphics, Inc.
diff --git a/libgcc/config/nios2/crtn.S b/libgcc/config/nios2/crtn.S
index b63c5662485..17637848f16 100644
--- a/libgcc/config/nios2/crtn.S
+++ b/libgcc/config/nios2/crtn.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Jonah Graham (jgraham@altera.com).
Contributed by Mentor Graphics, Inc.
diff --git a/libgcc/config/nios2/lib2-divmod-hi.c b/libgcc/config/nios2/lib2-divmod-hi.c
index 3f7ffbef0ef..7e25bc1fba1 100644
--- a/libgcc/config/nios2/lib2-divmod-hi.c
+++ b/libgcc/config/nios2/lib2-divmod-hi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Altera and Mentor Graphics, Inc.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/nios2/lib2-divmod.c b/libgcc/config/nios2/lib2-divmod.c
index 2ca5bead89d..a54086a4aad 100644
--- a/libgcc/config/nios2/lib2-divmod.c
+++ b/libgcc/config/nios2/lib2-divmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Altera and Mentor Graphics, Inc.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/nios2/lib2-divtable.c b/libgcc/config/nios2/lib2-divtable.c
index bbdbc60671e..da17b11af44 100644
--- a/libgcc/config/nios2/lib2-divtable.c
+++ b/libgcc/config/nios2/lib2-divtable.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Altera and Mentor Graphics, Inc.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/nios2/lib2-mul.c b/libgcc/config/nios2/lib2-mul.c
index 7287ace02ff..e544664867a 100644
--- a/libgcc/config/nios2/lib2-mul.c
+++ b/libgcc/config/nios2/lib2-mul.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Altera and Mentor Graphics, Inc.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/nios2/lib2-nios2.h b/libgcc/config/nios2/lib2-nios2.h
index 5776f3f6928..dbda0bb4ca6 100644
--- a/libgcc/config/nios2/lib2-nios2.h
+++ b/libgcc/config/nios2/lib2-nios2.h
@@ -1,6 +1,6 @@
/* Integer arithmetic support for Altera Nios II.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Altera and Mentor Graphics, Inc.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/nios2/linux-atomic.c b/libgcc/config/nios2/linux-atomic.c
index 28db95a0349..e14fc529c3a 100644
--- a/libgcc/config/nios2/linux-atomic.c
+++ b/libgcc/config/nios2/linux-atomic.c
@@ -1,5 +1,5 @@
/* Linux-specific atomic operations for Nios II Linux.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/nios2/linux-unwind.h b/libgcc/config/nios2/linux-unwind.h
index 20d905c43b3..7710164d7b7 100644
--- a/libgcc/config/nios2/linux-unwind.h
+++ b/libgcc/config/nios2/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for Nios II Linux.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/nios2/sfp-machine.h b/libgcc/config/nios2/sfp-machine.h
index 51652cbea57..80c834b38d6 100644
--- a/libgcc/config/nios2/sfp-machine.h
+++ b/libgcc/config/nios2/sfp-machine.h
@@ -1,5 +1,5 @@
/* Soft-FP definitions for Altera Nios II.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/nios2/tramp.c b/libgcc/config/nios2/tramp.c
index db0ee0adf96..66b08381793 100644
--- a/libgcc/config/nios2/tramp.c
+++ b/libgcc/config/nios2/tramp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2019 Free Software Foundation, Inc.
Contributed by Altera and Mentor Graphics, Inc.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/nvptx/crt0.c b/libgcc/config/nvptx/crt0.c
index aa0c4885eed..b3bf1475fa3 100644
--- a/libgcc/config/nvptx/crt0.c
+++ b/libgcc/config/nvptx/crt0.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -32,7 +32,9 @@ void *__nvptx_stacks[32] __attribute__((shared,nocommon));
/* Likewise for -muniform-simt. */
unsigned __nvptx_uni[32] __attribute__((shared,nocommon));
-void __attribute__((kernel))
+extern void __main (int *, int, void **) __attribute__((kernel));
+
+void
__main (int *rval_ptr, int argc, void **argv)
{
__exitval_ptr = rval_ptr;
diff --git a/libgcc/config/nvptx/mgomp.c b/libgcc/config/nvptx/mgomp.c
index 0c7bf42530a..23854d84e03 100644
--- a/libgcc/config/nvptx/mgomp.c
+++ b/libgcc/config/nvptx/mgomp.c
@@ -1,6 +1,6 @@
/* Define shared memory arrays for -msoft-stack and -muniform-simt.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/nvptx/nvptx-malloc.h b/libgcc/config/nvptx/nvptx-malloc.h
index 22db37ca1cb..772c0397ae9 100644
--- a/libgcc/config/nvptx/nvptx-malloc.h
+++ b/libgcc/config/nvptx/nvptx-malloc.h
@@ -1,6 +1,6 @@
/* Declarations for the malloc wrappers.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/nvptx/reduction.c b/libgcc/config/nvptx/reduction.c
index f3aa31a803b..3322b491f23 100644
--- a/libgcc/config/nvptx/reduction.c
+++ b/libgcc/config/nvptx/reduction.c
@@ -1,5 +1,5 @@
/* Oversized reductions lock variable
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
Contributed by Mentor Graphics.
This file is part of GCC.
diff --git a/libgcc/config/or1k/lib1funcs.S b/libgcc/config/or1k/lib1funcs.S
new file mode 100644
index 00000000000..6d058977229
--- /dev/null
+++ b/libgcc/config/or1k/lib1funcs.S
@@ -0,0 +1,222 @@
+/* Copyright (C) 2018-2019 Free Software Foundation, Inc.
+
+This file 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.
+
+This file 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__mulsi3
+ .balign 4
+ .globl __mulsi3
+ .type __mulsi3, @function
+__mulsi3:
+ l.movhi r11, 0 /* initial r */
+
+ /* Given R = X * Y ... */
+1: l.sfeq r4, r0 /* while (y != 0) */
+ l.bf 2f
+ l.andi r5, r4, 1 /* if (y & 1) ... */
+ l.add r12, r11, r3
+ l.sfne r5, r0
+#if defined(__or1k_cmov__)
+ l.cmov r11, r12, r11 /* ... r += x. */
+ l.srli r4, r4, 1 /* y >>= 1 */
+#else
+ l.bnf 3f
+ l.srli r4, r4, 1 /* y >>= 1 */
+ l.ori r11, r12, 0
+3:
+#endif
+ l.j 1b
+ l.add r3, r3, r3 /* x <<= 1 */
+
+2: l.jr r9
+ l.nop
+
+ .size __mulsi3, . - __mulsi3
+#endif
+
+#if defined(L__udivsi3) || defined(L__umodsi3) \
+ || defined(L__divsi3) || defined(L__modsi3)
+ .global __udivmodsi3_internal
+ .hidden __udivmodsi3_internal
+ .type __udivmodsi3_internal, @function
+#endif
+
+#ifdef L__udivsi3
+ .balign 4
+ .global __udivsi3
+ .type __udivsi3, @function
+__udivsi3:
+__udivmodsi3_internal:
+ /* Note that the other division routines assume that r13
+ is not clobbered by this routine, and use that as to
+ save a return address without creating a stack frame. */
+
+ l.sfeq r4, r0 /* division by zero; return 0. */
+ l.ori r11, r0, 0 /* initial quotient */
+ l.bf 9f
+ l.ori r12, r3, 0 /* initial remainder */
+
+ /* Given X/Y, shift Y left until Y >= X. */
+ l.ori r6, r0, 1 /* mask = 1 */
+1: l.sflts r4, r0 /* y has msb set */
+ l.bf 2f
+ l.sfltu r4, r12 /* y < x */
+ l.add r4, r4, r4 /* y <<= 1 */
+ l.bf 1b
+ l.add r6, r6, r6 /* mask <<= 1 */
+
+ /* Shift Y back to the right again, subtracting from X. */
+2: l.add r7, r11, r6 /* tmp1 = quot + mask */
+3: l.srli r6, r6, 1 /* mask >>= 1 */
+ l.sub r8, r12, r4 /* tmp2 = x - y */
+ l.sfleu r4, r12 /* y <= x */
+ l.srli r4, r4, 1 /* y >>= 1 */
+#if defined(__or1k_cmov__)
+ l.cmov r11, r7, r11 /* if (y <= x) quot = tmp1 */
+ l.cmov r12, r8, r12 /* if (y <= x) x = tmp2 */
+#else
+ l.bnf 4f
+ l.nop
+ l.ori r11, r7, 0
+ l.ori r12, r8, 0
+4:
+#endif
+ l.sfne r6, r0 /* loop until mask == 0 */
+ l.bf 3b
+ l.add r7, r11, r6 /* delay fill from loop start */
+
+9: l.jr r9
+ l.nop
+
+ .size __udivsi3, . - __udivsi3
+ .size __udivmodsi3_internal, . - __udivmodsi3_internal
+#endif
+
+#ifdef L__umodsi3
+ .balign 4
+ .global __umodsi3
+ .type __umodsi3, @function
+ .cfi_startproc
+__umodsi3:
+ /* Know that __udivmodsi3_internal does not clobber r13. */
+ l.ori r13, r9, 0
+ .cfi_register 9, 13
+ l.jal __udivmodsi3_internal
+ l.nop
+ l.jr r13 /* return to saved lr */
+ l.ori r11, r12, 0 /* move remainder to rv */
+
+ .cfi_endproc
+ .size __umodsi3, . - __umodsi3
+#endif
+
+/* For signed division we do:
+
+ -x / y = x / -y = -(x / y)
+ -x % y = -(x % y)
+ x % -y = x % y
+
+ which has the property that (x/y)*y + (x%y) = x. */
+
+#ifdef L__divsi3
+ .balign 4
+ .global __divsi3
+ .type __divsi3, @function
+ .cfi_startproc
+__divsi3:
+ l.xor r6, r3, r4 /* need result negate? */
+
+ l.sflts r3, r0 /* abs(x) */
+#if defined(__or1k_cmov__)
+ l.sub r5, r0, r3
+ l.cmov r3, r5, r3
+#else
+ l.bnf 1f
+ l.sub r5, r0, r3
+ l.ori r3, r5, 0
+1:
+#endif
+ l.sflts r4, r0 /* abs(y) */
+#if defined(__or1k_cmov__)
+ l.sub r5, r0, r4
+ l.cmov r4, r5, r4
+#else
+ l.bnf 2f
+ l.sub r5, r0, r4
+ l.ori r4, r5, 0
+2:
+#endif
+
+ /* If the result will not require sign flip, tail call. */
+ l.sflts r6, r0
+ l.bnf __udivmodsi3_internal
+ l.ori r13, r9, 0 /* save lr */
+
+ /* Otherwise, know that __udivmodsi3_internal does not clobber r13.
+ Perform a normal call, then negate and return via saved lr. */
+ .cfi_register 9, 13
+ l.jal __udivmodsi3_internal
+ l.nop
+ l.jr r13
+ l.sub r11, r0, r11
+
+ .cfi_endproc
+ .size __divsi3, . - __divsi3
+#endif
+
+#ifdef L__modsi3
+ .balign 4
+ .global __modsi3
+ .type __modsi3, @function
+ .cfi_startproc
+__modsi3:
+ l.sflts r4, r0 /* abs(y) */
+#if defined(__or1k_cmov__)
+ l.sub r5, r0, r4
+ l.cmov r4, r5, r4
+#else
+ l.bnf 2f
+ l.sub r5, r0, r4
+ l.ori r4, r5, 0
+2:
+#endif
+
+ l.sflts r3, r0 /* x negative? */
+ l.bf 1f
+ l.ori r13, r9, 0 /* save lr */
+
+ /* Know that __udivmodsi3_internal does not clobber r13. */
+ .cfi_register 9, 13
+
+ /* X positive; no negate of the result required. */
+ l.jal __udivmodsi3_internal
+ l.nop
+ l.jr r13 /* return to saved lr */
+ l.ori r11, r12, 0 /* move remainder to rv */
+
+ /* X negative; negate both X and the result. */
+1: l.jal __udivmodsi3_internal
+ l.sub r3, r0, r3
+ l.jr r13 /* return to saved lr */
+ l.sub r11, r0, r12 /* negate remainder to rv */
+
+ .cfi_endproc
+ .size __modsi3, .- __modsi3
+#endif
diff --git a/libgcc/config/or1k/linux-unwind.h b/libgcc/config/or1k/linux-unwind.h
new file mode 100644
index 00000000000..ab36729d24e
--- /dev/null
+++ b/libgcc/config/or1k/linux-unwind.h
@@ -0,0 +1,87 @@
+/* DWARF2 EH unwinding support for OpenRISC Linux.
+ Copyright (C) 2018-2019 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/>. */
+
+#ifndef inhibit_libc
+/* Do code reading to identify a signal frame, and set the frame
+ state data appropriately. See unwind-dw2.c for the structs. */
+
+#include <signal.h>
+#include <sys/ucontext.h>
+
+#define MD_FALLBACK_FRAME_STATE_FOR or1k_fallback_frame_state
+
+static _Unwind_Reason_Code
+or1k_fallback_frame_state (struct _Unwind_Context *context,
+ _Unwind_FrameState *fs)
+{
+ unsigned int *pc = context->ra;
+ struct rt_sigframe {
+ siginfo_t info;
+ ucontext_t uc;
+ } *rt;
+ struct sigcontext *sc;
+ long new_cfa;
+ int i;
+
+ if (pc[0] != 0xa960008b /* l.ori r11, r0, NR_rt_sigreturn */
+ || pc[1] != 0x20000001) /* l.sys 1 */
+ return _URC_END_OF_STACK;
+ if (context->cfa == 0)
+ return _URC_END_OF_STACK;
+
+ rt = context->cfa;
+ sc = &rt->uc.uc_mcontext;
+
+ new_cfa = sc->regs.gpr[1];
+ fs->regs.cfa_how = CFA_REG_OFFSET;
+ fs->regs.cfa_reg = 1;
+ fs->regs.cfa_offset = new_cfa - (long) context->cfa;
+ for (i = 2; i < 32; ++i)
+ {
+ fs->regs.reg[i].how = REG_SAVED_OFFSET;
+ fs->regs.reg[i].loc.offset = (long) &sc->regs.gpr[i] - new_cfa;
+ }
+ fs->regs.reg[32].how = REG_SAVED_OFFSET;
+ fs->regs.reg[32].loc.offset = (long)&sc->regs.pc - new_cfa;
+ fs->retaddr_column = 32;
+ fs->signal_frame = 1;
+
+ return _URC_NO_REASON;
+}
+
+#define MD_FROB_UPDATE_CONTEXT or1k_frob_update_context
+
+/* Fix up for signal handlers that don't have S flag set. */
+
+static void
+or1k_frob_update_context (struct _Unwind_Context *context,
+ _Unwind_FrameState *fs ATTRIBUTE_UNUSED)
+{
+ unsigned int *pc = context->ra;
+
+ if (pc[0] == 0xa960008b /* l.ori r11, r0, NR_rt_sigreturn */
+ && pc[1] == 0x20000001) /* l.sys 1 */
+ _Unwind_SetSignalFrame (context, 1);
+}
+#endif
diff --git a/libgcc/config/or1k/sfp-machine.h b/libgcc/config/or1k/sfp-machine.h
new file mode 100644
index 00000000000..5da9e84990d
--- /dev/null
+++ b/libgcc/config/or1k/sfp-machine.h
@@ -0,0 +1,54 @@
+#define _FP_W_TYPE_SIZE 32
+#define _FP_W_TYPE unsigned long
+#define _FP_WS_TYPE signed long
+#define _FP_I_TYPE long
+
+#define _FP_MUL_MEAT_S(R,X,Y) \
+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_D(R,X,Y) \
+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_Q(R,X,Y) \
+ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
+
+#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
+#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
+#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
+#define _FP_NANSIGN_S 0
+#define _FP_NANSIGN_D 0
+#define _FP_NANSIGN_Q 0
+
+#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
+
+/* Someone please check this. */
+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
+ do { \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
+ { \
+ R##_s = Y##_s; \
+ _FP_FRAC_COPY_##wc(R,Y); \
+ } \
+ else \
+ { \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R,X); \
+ } \
+ R##_c = FP_CLS_NAN; \
+ } while (0)
+
+#define __LITTLE_ENDIAN 1234
+#define __BIG_ENDIAN 4321
+
+#define __BYTE_ORDER __BIG_ENDIAN
+
+#define _FP_TININESS_AFTER_ROUNDING 0
+
+/* Define ALIASNAME as a strong alias for NAME. */
+# define strong_alias(name, aliasname) _strong_alias(name, aliasname)
+# define _strong_alias(name, aliasname) \
+ extern __typeof (name) aliasname __attribute__ ((alias (#name)));
diff --git a/libgcc/config/or1k/t-or1k b/libgcc/config/or1k/t-or1k
new file mode 100644
index 00000000000..5f86801f396
--- /dev/null
+++ b/libgcc/config/or1k/t-or1k
@@ -0,0 +1,22 @@
+# Libgcc Makefile fragment for OpenRISC
+# Copyright (C) 2018-2019 Free Software Foundation, Inc.
+# Contributed by Stafford Horne.
+#
+# 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/>.
+
+LIB1ASMSRC = or1k/lib1funcs.S
+LIB1ASMFUNCS = __mulsi3 __udivsi3 __divsi3 __umodsi3 __modsi3
diff --git a/libgcc/config/pa/fptr.c b/libgcc/config/pa/fptr.c
index 944ed4495d9..9d2bb73ec98 100644
--- a/libgcc/config/pa/fptr.c
+++ b/libgcc/config/pa/fptr.c
@@ -1,5 +1,5 @@
/* Subroutine for function pointer canonicalization on PA-RISC with ELF32.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by John David Anglin (dave.anglin@nrc.ca).
This file is part of GCC.
@@ -53,7 +53,7 @@ typedef int (*fixup_t) (struct link_map *, unsigned int);
extern unsigned int _GLOBAL_OFFSET_TABLE_;
static inline int
-_dl_read_access_allowed (unsigned int *addr)
+_dl_read_access_allowed (unsigned int addr)
{
int result;
@@ -62,6 +62,9 @@ _dl_read_access_allowed (unsigned int *addr)
return result;
}
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Warray-bounds"
+
/* __canonicalize_funcptr_for_compare must be hidden so that it is not
placed in the dynamic symbol table. Like millicode functions, it
must be linked into all binaries in order access the got table of
@@ -76,7 +79,8 @@ __canonicalize_funcptr_for_compare (fptr_t fptr)
{
static unsigned int fixup_plabel[2] __attribute__((used));
fixup_t fixup;
- unsigned int *got, *iptr, *plabel;
+ volatile unsigned int *plabel;
+ unsigned int *got, *iptr, reloc_offset;
int i;
/* -1 and page 0 are special. -1 is used in crtend to mark the end of
@@ -91,17 +95,20 @@ __canonicalize_funcptr_for_compare (fptr_t fptr)
to the entry of the PLT stub just before the global offset table.
The second word in the plabel contains the relocation offset for the
function. */
- plabel = (unsigned int *) ((unsigned int) fptr & ~3);
- if (!_dl_read_access_allowed (plabel))
+ plabel = (volatile unsigned int *) ((unsigned int) fptr & ~3);
+ if (!_dl_read_access_allowed ((unsigned int)plabel))
return (unsigned int) fptr;
/* Load first word of candidate descriptor. It should be a pointer
with word alignment and point to memory that can be read. */
got = (unsigned int *) plabel[0];
if (((unsigned int) got & 3) != 0
- || !_dl_read_access_allowed (got))
+ || !_dl_read_access_allowed ((unsigned int)got))
return (unsigned int) fptr;
+ /* We need to load the relocation offset before the function address. */
+ reloc_offset = plabel[1];
+ __sync_synchronize();
got = (unsigned int *) (plabel[0] + GOT_FROM_PLT_STUB);
/* Return the address of the function if the plabel has been resolved. */
@@ -137,7 +144,9 @@ __canonicalize_funcptr_for_compare (fptr_t fptr)
/* Call fixup to resolve the function address. got[1] contains the
link_map pointer and plabel[1] the relocation offset. */
- fixup ((struct link_map *) got[1], plabel[1]);
+ fixup ((struct link_map *) got[1], reloc_offset);
return plabel[0];
}
+
+#pragma GCC diagnostic pop
diff --git a/libgcc/config/pa/gthr-dce.h b/libgcc/config/pa/gthr-dce.h
index 2407100dfd1..56197e11964 100644
--- a/libgcc/config/pa/gthr-dce.h
+++ b/libgcc/config/pa/gthr-dce.h
@@ -1,6 +1,6 @@
/* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/pa/hpux-unwind.h b/libgcc/config/pa/hpux-unwind.h
index fc423fe9433..4ec2ded66c0 100644
--- a/libgcc/config/pa/hpux-unwind.h
+++ b/libgcc/config/pa/hpux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for PA HP-UX.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/pa/lib2funcs.S b/libgcc/config/pa/lib2funcs.S
index 4d671996bac..a2db5b3d3ac 100644
--- a/libgcc/config/pa/lib2funcs.S
+++ b/libgcc/config/pa/lib2funcs.S
@@ -1,6 +1,6 @@
; Subroutines for calling unbound dynamic functions from within GDB for HPPA.
; Subroutines for out of line prologues and epilogues on for the HPPA
-; Copyright (C) 1994-2018 Free Software Foundation, Inc.
+; Copyright (C) 1994-2019 Free Software Foundation, Inc.
; This file is part of GCC.
@@ -55,13 +55,13 @@ __gcc_plt_call
; An inline version of dyncall so we don't have to worry
; about long calls to millicode, PIC and other complexities.
bb,>=,n %r22,30,L$foo
- depi 0,31,2,%r22
- ldw 4(%r22),%r19
- ldw 0(%r22),%r22
+ depi 0,31,2,%r22
+ ldw 0(%r22),%r21
+ ldw 4(%r22),%r19
L$foo
- ldsid (%r22),%r1
- mtsp %r1,%sr0
- ble 0(%sr0,%r22)
+ ldsid (%r21),%r1
+ mtsp %r1,%sr0
+ ble 0(%sr0,%r21)
copy %r31,%r2
ldw -8(%r30),%r2
diff --git a/libgcc/config/pa/linux-atomic.c b/libgcc/config/pa/linux-atomic.c
index 79c89e19900..4cd69f74cd2 100644
--- a/libgcc/config/pa/linux-atomic.c
+++ b/libgcc/config/pa/linux-atomic.c
@@ -1,5 +1,5 @@
/* Linux-specific atomic operations for PA Linux.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
Based on code contributed by CodeSourcery for ARM EABI Linux.
Modifications for PA Linux by Helge Deller <deller@gmx.de>
@@ -28,14 +28,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define EBUSY 16
#define ENOSYS 251
-/* All PA-RISC implementations supported by linux have strongly
- ordered loads and stores. Only cache flushes and purges can be
- delayed. The data cache implementations are all globally
- coherent. Thus, there is no need to synchonize memory accesses.
-
- GCC automatically issues a asm memory barrier when it encounters
- a __sync_synchronize builtin. Thus, we do not need to define this
- builtin.
+/* PA-RISC 2.0 supports out-of-order execution for loads and stores.
+ Thus, we need to synchonize memory accesses. For more info, see:
+ "Advanced Performance Features of the 64-bit PA-8000" by Doug Hunt.
We implement byte, short and int versions of each atomic operation
using the kernel helper defined below. There is no support for
@@ -46,7 +41,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
/* Kernel helper for compare-and-exchange a 32-bit value. */
static inline long
-__kernel_cmpxchg (int *mem, int oldval, int newval)
+__kernel_cmpxchg (volatile void *mem, int oldval, int newval)
{
register unsigned long lws_mem asm("r26") = (unsigned long) (mem);
register int lws_old asm("r25") = oldval;
@@ -59,20 +54,18 @@ __kernel_cmpxchg (int *mem, int oldval, int newval)
: "i" (LWS_CAS), "r" (lws_mem), "r" (lws_old), "r" (lws_new)
: "r1", "r20", "r22", "r23", "r29", "r31", "memory"
);
- if (__builtin_expect (lws_errno == -EFAULT || lws_errno == -ENOSYS, 0))
- __builtin_trap ();
/* If the kernel LWS call succeeded (lws_errno == 0), lws_ret contains
the old value from memory. If this value is equal to OLDVAL, the
new value was written to memory. If not, return -EBUSY. */
if (!lws_errno && lws_ret != oldval)
- lws_errno = -EBUSY;
+ return -EBUSY;
return lws_errno;
}
static inline long
-__kernel_cmpxchg2 (void *mem, const void *oldval, const void *newval,
+__kernel_cmpxchg2 (volatile void *mem, const void *oldval, const void *newval,
int val_size)
{
register unsigned long lws_mem asm("r26") = (unsigned long) (mem);
@@ -93,9 +86,6 @@ __kernel_cmpxchg2 (void *mem, const void *oldval, const void *newval,
if (__builtin_expect (lws_ret == 0, 1))
return 0;
- if (__builtin_expect (lws_errno == -EFAULT || lws_errno == -ENOSYS, 0))
- __builtin_trap ();
-
/* If the kernel LWS call fails with no error, return -EBUSY */
if (__builtin_expect (!lws_errno, 0))
return -EBUSY;
@@ -113,13 +103,13 @@ __kernel_cmpxchg2 (void *mem, const void *oldval, const void *newval,
#define FETCH_AND_OP_2(OP, PFX_OP, INF_OP, TYPE, WIDTH, INDEX) \
TYPE HIDDEN \
- __sync_fetch_and_##OP##_##WIDTH (TYPE *ptr, TYPE val) \
+ __sync_fetch_and_##OP##_##WIDTH (volatile void *ptr, TYPE val) \
{ \
TYPE tmp, newval; \
long failure; \
\
do { \
- tmp = __atomic_load_n (ptr, __ATOMIC_SEQ_CST); \
+ tmp = __atomic_load_n ((volatile TYPE *)ptr, __ATOMIC_RELAXED); \
newval = PFX_OP (tmp INF_OP val); \
failure = __kernel_cmpxchg2 (ptr, &tmp, &newval, INDEX); \
} while (failure != 0); \
@@ -127,36 +117,36 @@ __kernel_cmpxchg2 (void *mem, const void *oldval, const void *newval,
return tmp; \
}
-FETCH_AND_OP_2 (add, , +, long long, 8, 3)
-FETCH_AND_OP_2 (sub, , -, long long, 8, 3)
-FETCH_AND_OP_2 (or, , |, long long, 8, 3)
-FETCH_AND_OP_2 (and, , &, long long, 8, 3)
-FETCH_AND_OP_2 (xor, , ^, long long, 8, 3)
-FETCH_AND_OP_2 (nand, ~, &, long long, 8, 3)
-
-FETCH_AND_OP_2 (add, , +, short, 2, 1)
-FETCH_AND_OP_2 (sub, , -, short, 2, 1)
-FETCH_AND_OP_2 (or, , |, short, 2, 1)
-FETCH_AND_OP_2 (and, , &, short, 2, 1)
-FETCH_AND_OP_2 (xor, , ^, short, 2, 1)
-FETCH_AND_OP_2 (nand, ~, &, short, 2, 1)
-
-FETCH_AND_OP_2 (add, , +, signed char, 1, 0)
-FETCH_AND_OP_2 (sub, , -, signed char, 1, 0)
-FETCH_AND_OP_2 (or, , |, signed char, 1, 0)
-FETCH_AND_OP_2 (and, , &, signed char, 1, 0)
-FETCH_AND_OP_2 (xor, , ^, signed char, 1, 0)
-FETCH_AND_OP_2 (nand, ~, &, signed char, 1, 0)
+FETCH_AND_OP_2 (add, , +, long long unsigned int, 8, 3)
+FETCH_AND_OP_2 (sub, , -, long long unsigned int, 8, 3)
+FETCH_AND_OP_2 (or, , |, long long unsigned int, 8, 3)
+FETCH_AND_OP_2 (and, , &, long long unsigned int, 8, 3)
+FETCH_AND_OP_2 (xor, , ^, long long unsigned int, 8, 3)
+FETCH_AND_OP_2 (nand, ~, &, long long unsigned int, 8, 3)
+
+FETCH_AND_OP_2 (add, , +, short unsigned int, 2, 1)
+FETCH_AND_OP_2 (sub, , -, short unsigned int, 2, 1)
+FETCH_AND_OP_2 (or, , |, short unsigned int, 2, 1)
+FETCH_AND_OP_2 (and, , &, short unsigned int, 2, 1)
+FETCH_AND_OP_2 (xor, , ^, short unsigned int, 2, 1)
+FETCH_AND_OP_2 (nand, ~, &, short unsigned int, 2, 1)
+
+FETCH_AND_OP_2 (add, , +, unsigned char, 1, 0)
+FETCH_AND_OP_2 (sub, , -, unsigned char, 1, 0)
+FETCH_AND_OP_2 (or, , |, unsigned char, 1, 0)
+FETCH_AND_OP_2 (and, , &, unsigned char, 1, 0)
+FETCH_AND_OP_2 (xor, , ^, unsigned char, 1, 0)
+FETCH_AND_OP_2 (nand, ~, &, unsigned char, 1, 0)
#define OP_AND_FETCH_2(OP, PFX_OP, INF_OP, TYPE, WIDTH, INDEX) \
TYPE HIDDEN \
- __sync_##OP##_and_fetch_##WIDTH (TYPE *ptr, TYPE val) \
+ __sync_##OP##_and_fetch_##WIDTH (volatile void *ptr, TYPE val) \
{ \
TYPE tmp, newval; \
long failure; \
\
do { \
- tmp = __atomic_load_n (ptr, __ATOMIC_SEQ_CST); \
+ tmp = __atomic_load_n ((volatile TYPE *)ptr, __ATOMIC_RELAXED); \
newval = PFX_OP (tmp INF_OP val); \
failure = __kernel_cmpxchg2 (ptr, &tmp, &newval, INDEX); \
} while (failure != 0); \
@@ -164,36 +154,37 @@ FETCH_AND_OP_2 (nand, ~, &, signed char, 1, 0)
return PFX_OP (tmp INF_OP val); \
}
-OP_AND_FETCH_2 (add, , +, long long, 8, 3)
-OP_AND_FETCH_2 (sub, , -, long long, 8, 3)
-OP_AND_FETCH_2 (or, , |, long long, 8, 3)
-OP_AND_FETCH_2 (and, , &, long long, 8, 3)
-OP_AND_FETCH_2 (xor, , ^, long long, 8, 3)
-OP_AND_FETCH_2 (nand, ~, &, long long, 8, 3)
-
-OP_AND_FETCH_2 (add, , +, short, 2, 1)
-OP_AND_FETCH_2 (sub, , -, short, 2, 1)
-OP_AND_FETCH_2 (or, , |, short, 2, 1)
-OP_AND_FETCH_2 (and, , &, short, 2, 1)
-OP_AND_FETCH_2 (xor, , ^, short, 2, 1)
-OP_AND_FETCH_2 (nand, ~, &, short, 2, 1)
-
-OP_AND_FETCH_2 (add, , +, signed char, 1, 0)
-OP_AND_FETCH_2 (sub, , -, signed char, 1, 0)
-OP_AND_FETCH_2 (or, , |, signed char, 1, 0)
-OP_AND_FETCH_2 (and, , &, signed char, 1, 0)
-OP_AND_FETCH_2 (xor, , ^, signed char, 1, 0)
-OP_AND_FETCH_2 (nand, ~, &, signed char, 1, 0)
+OP_AND_FETCH_2 (add, , +, long long unsigned int, 8, 3)
+OP_AND_FETCH_2 (sub, , -, long long unsigned int, 8, 3)
+OP_AND_FETCH_2 (or, , |, long long unsigned int, 8, 3)
+OP_AND_FETCH_2 (and, , &, long long unsigned int, 8, 3)
+OP_AND_FETCH_2 (xor, , ^, long long unsigned int, 8, 3)
+OP_AND_FETCH_2 (nand, ~, &, long long unsigned int, 8, 3)
+
+OP_AND_FETCH_2 (add, , +, short unsigned int, 2, 1)
+OP_AND_FETCH_2 (sub, , -, short unsigned int, 2, 1)
+OP_AND_FETCH_2 (or, , |, short unsigned int, 2, 1)
+OP_AND_FETCH_2 (and, , &, short unsigned int, 2, 1)
+OP_AND_FETCH_2 (xor, , ^, short unsigned int, 2, 1)
+OP_AND_FETCH_2 (nand, ~, &, short unsigned int, 2, 1)
+
+OP_AND_FETCH_2 (add, , +, unsigned char, 1, 0)
+OP_AND_FETCH_2 (sub, , -, unsigned char, 1, 0)
+OP_AND_FETCH_2 (or, , |, unsigned char, 1, 0)
+OP_AND_FETCH_2 (and, , &, unsigned char, 1, 0)
+OP_AND_FETCH_2 (xor, , ^, unsigned char, 1, 0)
+OP_AND_FETCH_2 (nand, ~, &, unsigned char, 1, 0)
#define FETCH_AND_OP_WORD(OP, PFX_OP, INF_OP) \
- int HIDDEN \
- __sync_fetch_and_##OP##_4 (int *ptr, int val) \
+ unsigned int HIDDEN \
+ __sync_fetch_and_##OP##_4 (volatile void *ptr, unsigned int val) \
{ \
- int tmp; \
+ unsigned int tmp; \
long failure; \
\
do { \
- tmp = __atomic_load_n (ptr, __ATOMIC_SEQ_CST); \
+ tmp = __atomic_load_n ((volatile unsigned int *)ptr, \
+ __ATOMIC_RELAXED); \
failure = __kernel_cmpxchg (ptr, tmp, PFX_OP (tmp INF_OP val)); \
} while (failure != 0); \
\
@@ -208,14 +199,15 @@ FETCH_AND_OP_WORD (xor, , ^)
FETCH_AND_OP_WORD (nand, ~, &)
#define OP_AND_FETCH_WORD(OP, PFX_OP, INF_OP) \
- int HIDDEN \
- __sync_##OP##_and_fetch_4 (int *ptr, int val) \
+ unsigned int HIDDEN \
+ __sync_##OP##_and_fetch_4 (volatile void *ptr, unsigned int val) \
{ \
- int tmp; \
+ unsigned int tmp; \
long failure; \
\
do { \
- tmp = __atomic_load_n (ptr, __ATOMIC_SEQ_CST); \
+ tmp = __atomic_load_n ((volatile unsigned int *)ptr, \
+ __ATOMIC_RELAXED); \
failure = __kernel_cmpxchg (ptr, tmp, PFX_OP (tmp INF_OP val)); \
} while (failure != 0); \
\
@@ -233,7 +225,7 @@ typedef unsigned char bool;
#define COMPARE_AND_SWAP_2(TYPE, WIDTH, INDEX) \
TYPE HIDDEN \
- __sync_val_compare_and_swap_##WIDTH (TYPE *ptr, TYPE oldval, \
+ __sync_val_compare_and_swap_##WIDTH (volatile void *ptr, TYPE oldval, \
TYPE newval) \
{ \
TYPE actual_oldval; \
@@ -241,7 +233,8 @@ typedef unsigned char bool;
\
while (1) \
{ \
- actual_oldval = __atomic_load_n (ptr, __ATOMIC_SEQ_CST); \
+ actual_oldval = __atomic_load_n ((volatile TYPE *)ptr, \
+ __ATOMIC_RELAXED); \
\
if (__builtin_expect (oldval != actual_oldval, 0)) \
return actual_oldval; \
@@ -253,27 +246,29 @@ typedef unsigned char bool;
} \
} \
\
- bool HIDDEN \
- __sync_bool_compare_and_swap_##WIDTH (TYPE *ptr, TYPE oldval, \
- TYPE newval) \
+ _Bool HIDDEN \
+ __sync_bool_compare_and_swap_##WIDTH (volatile void *ptr, \
+ TYPE oldval, TYPE newval) \
{ \
long failure = __kernel_cmpxchg2 (ptr, &oldval, &newval, INDEX); \
return (failure == 0); \
}
-COMPARE_AND_SWAP_2 (long long, 8, 3)
-COMPARE_AND_SWAP_2 (short, 2, 1)
-COMPARE_AND_SWAP_2 (char, 1, 0)
+COMPARE_AND_SWAP_2 (long long unsigned int, 8, 3)
+COMPARE_AND_SWAP_2 (short unsigned int, 2, 1)
+COMPARE_AND_SWAP_2 (unsigned char, 1, 0)
-int HIDDEN
-__sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
+unsigned int HIDDEN
+__sync_val_compare_and_swap_4 (volatile void *ptr, unsigned int oldval,
+ unsigned int newval)
{
long fail;
- int actual_oldval;
+ unsigned int actual_oldval;
while (1)
{
- actual_oldval = __atomic_load_n (ptr, __ATOMIC_SEQ_CST);
+ actual_oldval = __atomic_load_n ((volatile unsigned int *)ptr,
+ __ATOMIC_RELAXED);
if (__builtin_expect (oldval != actual_oldval, 0))
return actual_oldval;
@@ -285,8 +280,9 @@ __sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
}
}
-bool HIDDEN
-__sync_bool_compare_and_swap_4 (int *ptr, int oldval, int newval)
+_Bool HIDDEN
+__sync_bool_compare_and_swap_4 (volatile void *ptr, unsigned int oldval,
+ unsigned int newval)
{
long failure = __kernel_cmpxchg (ptr, oldval, newval);
return (failure == 0);
@@ -294,62 +290,64 @@ __sync_bool_compare_and_swap_4 (int *ptr, int oldval, int newval)
#define SYNC_LOCK_TEST_AND_SET_2(TYPE, WIDTH, INDEX) \
TYPE HIDDEN \
- __sync_lock_test_and_set_##WIDTH (TYPE *ptr, TYPE val) \
+ __sync_lock_test_and_set_##WIDTH (volatile void *ptr, TYPE val) \
{ \
TYPE oldval; \
long failure; \
\
do { \
- oldval = __atomic_load_n (ptr, __ATOMIC_SEQ_CST); \
+ oldval = __atomic_load_n ((volatile TYPE *)ptr, \
+ __ATOMIC_RELAXED); \
failure = __kernel_cmpxchg2 (ptr, &oldval, &val, INDEX); \
} while (failure != 0); \
\
return oldval; \
}
-SYNC_LOCK_TEST_AND_SET_2 (long long, 8, 3)
-SYNC_LOCK_TEST_AND_SET_2 (short, 2, 1)
-SYNC_LOCK_TEST_AND_SET_2 (signed char, 1, 0)
+SYNC_LOCK_TEST_AND_SET_2 (long long unsigned int, 8, 3)
+SYNC_LOCK_TEST_AND_SET_2 (short unsigned int, 2, 1)
+SYNC_LOCK_TEST_AND_SET_2 (unsigned char, 1, 0)
-int HIDDEN
-__sync_lock_test_and_set_4 (int *ptr, int val)
+unsigned int HIDDEN
+__sync_lock_test_and_set_4 (volatile void *ptr, unsigned int val)
{
long failure;
- int oldval;
+ unsigned int oldval;
do {
- oldval = __atomic_load_n (ptr, __ATOMIC_SEQ_CST);
+ oldval = __atomic_load_n ((volatile unsigned int *)ptr, __ATOMIC_RELAXED);
failure = __kernel_cmpxchg (ptr, oldval, val);
} while (failure != 0);
return oldval;
}
-#define SYNC_LOCK_RELEASE_2(TYPE, WIDTH, INDEX) \
+#define SYNC_LOCK_RELEASE_1(TYPE, WIDTH, INDEX) \
void HIDDEN \
- __sync_lock_release_##WIDTH (TYPE *ptr) \
+ __sync_lock_release_##WIDTH (volatile void *ptr) \
{ \
- TYPE oldval, zero = 0; \
+ TYPE oldval, val = 0; \
long failure; \
\
do { \
- oldval = __atomic_load_n (ptr, __ATOMIC_SEQ_CST); \
- failure = __kernel_cmpxchg2 (ptr, &oldval, &zero, INDEX); \
+ oldval = __atomic_load_n ((volatile TYPE *)ptr, \
+ __ATOMIC_RELAXED); \
+ failure = __kernel_cmpxchg2 (ptr, &oldval, &val, INDEX); \
} while (failure != 0); \
}
-SYNC_LOCK_RELEASE_2 (long long, 8, 3)
-SYNC_LOCK_RELEASE_2 (short, 2, 1)
-SYNC_LOCK_RELEASE_2 (signed char, 1, 0)
+SYNC_LOCK_RELEASE_1 (long long unsigned int, 8, 3)
+SYNC_LOCK_RELEASE_1 (short unsigned int, 2, 1)
+SYNC_LOCK_RELEASE_1 (unsigned char, 1, 0)
void HIDDEN
-__sync_lock_release_4 (int *ptr)
+__sync_lock_release_4 (volatile void *ptr)
{
long failure;
- int oldval;
+ unsigned int oldval;
do {
- oldval = __atomic_load_n (ptr, __ATOMIC_SEQ_CST);
+ oldval = __atomic_load_n ((volatile unsigned int *)ptr, __ATOMIC_RELAXED);
failure = __kernel_cmpxchg (ptr, oldval, 0);
} while (failure != 0);
}
diff --git a/libgcc/config/pa/linux-unwind.h b/libgcc/config/pa/linux-unwind.h
index 58983513918..4f62ad0b702 100644
--- a/libgcc/config/pa/linux-unwind.h
+++ b/libgcc/config/pa/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for PA Linux.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -130,7 +130,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
return _URC_END_OF_STACK;
frame = (struct rt_sigframe *)(sp + off);
- sc = &frame->uc.uc_mcontext;
+ sc = (struct sigcontext *)&frame->uc.uc_mcontext;
new_cfa = sc->sc_gr[30];
fs->regs.cfa_how = CFA_REG_OFFSET;
diff --git a/libgcc/config/pa/milli64.S b/libgcc/config/pa/milli64.S
index 12013563789..36040e9e78d 100644
--- a/libgcc/config/pa/milli64.S
+++ b/libgcc/config/pa/milli64.S
@@ -2,7 +2,7 @@
adapted for gcc by Paul Bame <bame@debian.org>
and Alan Modra <alan@linuxcare.com.au>.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -222,19 +222,26 @@ GSYM($$dyncall)
.proc
.callinfo millicode
.entry
- bb,>=,n %r22,30,LREF(1) ; branch if not plabel address
- depi 0,31,2,%r22 ; clear the two least significant bits
- ldw 4(%r22),%r19 ; load new LTP value
- ldw 0(%r22),%r22 ; load address of target
-LSYM(1)
#ifdef LINUX
- bv %r0(%r22) ; branch to the real target
+ extru,<> %r22,30,1,%r0 ; nullify if plabel bit set
+ bv,n %r0(%r22) ; branch to target
+ ldw -2(%r22),%r21 ; load address of target
+ bv %r0(%r21) ; branch to the real target
+ ldw 2(%r22),%r19 ; load new LTP value
#else
+ bb,>=,n %r22,30,LREF(1) ; branch if not plabel address
+ ldw -2(%r22),%r21 ; load address of target to r21
+ ldsid (%sr0,%r21),%r1 ; get the "space ident" selected by r21
+ ldw 2(%r22),%r19 ; load new LTP value
+ mtsp %r1,%sr0 ; move that space identifier into sr0
+ be 0(%sr0,%r21) ; branch to the real target
+ stw %r2,-24(%r30) ; save return address into frame marker
+LSYM(1)
ldsid (%sr0,%r22),%r1 ; get the "space ident" selected by r22
mtsp %r1,%sr0 ; move that space identifier into sr0
- be 0(%sr0,%r22) ; branch to the real target
-#endif
+ be 0(%sr0,%r22) ; branch to the target
stw %r2,-24(%r30) ; save return address into frame marker
+#endif
.exit
.procend
#endif
diff --git a/libgcc/config/pa/pa64-hpux-lib.h b/libgcc/config/pa/pa64-hpux-lib.h
index 00973f30fc6..7112014d1e1 100644
--- a/libgcc/config/pa/pa64-hpux-lib.h
+++ b/libgcc/config/pa/pa64-hpux-lib.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler, for HPs running
HP-UX using the 64bit runtime model.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/pa/quadlib.c b/libgcc/config/pa/quadlib.c
index 4886210a832..50f1ed91de3 100644
--- a/libgcc/config/pa/quadlib.c
+++ b/libgcc/config/pa/quadlib.c
@@ -1,5 +1,5 @@
/* Subroutines for long double support.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/pa/stublib.c b/libgcc/config/pa/stublib.c
index 3840b695f22..7e79dbfd6c9 100644
--- a/libgcc/config/pa/stublib.c
+++ b/libgcc/config/pa/stublib.c
@@ -1,5 +1,5 @@
/* Stub functions.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -115,7 +115,3 @@ pthread_once (void)
return 0;
}
#endif
-
-#ifdef L_gnu_lto_v1
-char gnu_lto_v1;
-#endif
diff --git a/libgcc/config/pa/t-netbsd b/libgcc/config/pa/t-netbsd
new file mode 100644
index 00000000000..8b99068ce42
--- /dev/null
+++ b/libgcc/config/pa/t-netbsd
@@ -0,0 +1,9 @@
+#Plug millicode routines into libgcc.a We want these on both native and
+#cross compiles. We use the "64-bit" routines because the "32-bit" code
+#is broken for certain corner cases.
+LIB1ASMSRC = pa/milli64.S
+LIB1ASMFUNCS = _divI _divU _remI _remU _div_const _mulI _dyncall
+
+HOST_LIBGCC2_CFLAGS += -DELF=1 -DLINUX=1
+
+LIB2ADD = $(srcdir)/config/pa/fptr.c
diff --git a/libgcc/config/pa/t-slibgcc-hpux b/libgcc/config/pa/t-slibgcc-hpux
index 508abfec37d..80206956ac0 100644
--- a/libgcc/config/pa/t-slibgcc-hpux
+++ b/libgcc/config/pa/t-slibgcc-hpux
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/pa/t-stublib b/libgcc/config/pa/t-stublib
index 0a6223d952e..8004c1e46a7 100644
--- a/libgcc/config/pa/t-stublib
+++ b/libgcc/config/pa/t-stublib
@@ -3,8 +3,7 @@ LIBGCCSTUB_OBJS = rfi-stub.o dfi-stub.o ritm-stub.o ditm-stub.o \
pthread_default_stacksize_np-stub.o \
pthread_mutex_lock-stub.o \
pthread_mutex_unlock-stub.o \
- pthread_once-stub.o \
- gnu_lto_v1-stub.o
+ pthread_once-stub.o
rfi-stub.o: $(srcdir)/config/pa/stublib.c
$(gcc_compile) -c -O2 -DL_register_frame_info $<
@@ -36,9 +35,6 @@ pthread_mutex_unlock-stub.o: $(srcdir)/config/pa/stublib.c
pthread_once-stub.o: $(srcdir)/config/pa/stublib.c
$(gcc_compile) -c -O2 -DL_pthread_once $<
-gnu_lto_v1-stub.o: $(srcdir)/config/pa/stublib.c
- $(gcc_compile) -c -O2 -DL_gnu_lto_v1 $<
-
libgcc_stub.a: $(LIBGCCSTUB_OBJS)
-rm -rf $@
$(AR) rc $@ $(LIBGCCSTUB_OBJS)
diff --git a/libgcc/config/pdp11/t-pdp11 b/libgcc/config/pdp11/t-pdp11
index 7cadae11a2a..a2e4287f2b4 100644
--- a/libgcc/config/pdp11/t-pdp11
+++ b/libgcc/config/pdp11/t-pdp11
@@ -1,8 +1,12 @@
-LIB2ADD = $(srcdir)/udivmod.c \
+LIB2ADD = $(srcdir)/divmod.c \
+ $(srcdir)/udivmod.c \
$(srcdir)/udivmodsi4.c \
+ $(srcdir)/udivhi3.c \
+ $(srcdir)/udivmodhi4.c \
$(srcdir)/memcmp.c \
$(srcdir)/memcpy.c \
$(srcdir)/memmove.c \
$(srcdir)/memset.c
-HOST_LIBGCC2_CFLAGS += -O2 -mfloat32
+# Small machine, optimize for size
+HOST_LIBGCC2_CFLAGS += -Os
diff --git a/libgcc/config/pru/asri.c b/libgcc/config/pru/asri.c
new file mode 100644
index 00000000000..7d8d8f672f4
--- /dev/null
+++ b/libgcc/config/pru/asri.c
@@ -0,0 +1,33 @@
+/* PRU ABI compatibility functions
+ Arithmetic right shift
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
+ Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+
+ This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ This file 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with GCC; see the file COPYING.LIB. If not see
+ <http://www.gnu.org/licenses/>. */
+
+int __pruabi_asri(int a, unsigned char shift)
+{
+ /* GCC has a built-in op. */
+ return a >> shift;
+}
diff --git a/libgcc/config/pru/eqd.c b/libgcc/config/pru/eqd.c
new file mode 100644
index 00000000000..0ffb4f78ba5
--- /dev/null
+++ b/libgcc/config/pru/eqd.c
@@ -0,0 +1,45 @@
+/* Software floating-point emulation.
+ Return 1 iff a == b, 0 otherwise.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ This file 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with GCC; see the file COPYING.LIB. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#include <soft-fp/soft-fp.h>
+#include <soft-fp/double.h>
+
+CMPtype __pruabi_eqd(DFtype a, DFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(B);
+ CMPtype r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_UNPACK_RAW_D(B, b);
+ FP_CMP_EQ_D(r, A, B, 1);
+ FP_HANDLE_EXCEPTIONS;
+
+ return !r;
+}
diff --git a/libgcc/config/pru/eqf.c b/libgcc/config/pru/eqf.c
new file mode 100644
index 00000000000..cb01021dd53
--- /dev/null
+++ b/libgcc/config/pru/eqf.c
@@ -0,0 +1,45 @@
+/* Software floating-point emulation.
+ Return 1 iff a == b, 0 otherwise.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ This file 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with GCC; see the file COPYING.LIB. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#include <soft-fp/soft-fp.h>
+#include <soft-fp/single.h>
+
+CMPtype __pruabi_eqf(SFtype a, SFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(B);
+ CMPtype r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_UNPACK_RAW_S(B, b);
+ FP_CMP_EQ_S(r, A, B, 1);
+ FP_HANDLE_EXCEPTIONS;
+
+ return !r;
+}
diff --git a/libgcc/config/pru/ged.c b/libgcc/config/pru/ged.c
new file mode 100644
index 00000000000..982a994305e
--- /dev/null
+++ b/libgcc/config/pru/ged.c
@@ -0,0 +1,45 @@
+/* Software floating-point emulation.
+ Return 1 iff a >= b, 0 otherwise.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ This file 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with GCC; see the file COPYING.LIB. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#include <soft-fp/soft-fp.h>
+#include <soft-fp/double.h>
+
+CMPtype __pruabi_ged(DFtype a, DFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(B);
+ CMPtype r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_UNPACK_RAW_D(B, b);
+ FP_CMP_D(r, A, B, -2, 2);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r >= 0;
+}
diff --git a/libgcc/config/pru/gef.c b/libgcc/config/pru/gef.c
new file mode 100644
index 00000000000..d9744e5bad5
--- /dev/null
+++ b/libgcc/config/pru/gef.c
@@ -0,0 +1,45 @@
+/* Software floating-point emulation.
+ Return 1 iff a >= b, 0 otherwise.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ This file 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with GCC; see the file COPYING.LIB. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#include <soft-fp/soft-fp.h>
+#include <soft-fp/single.h>
+
+CMPtype __pruabi_gef(SFtype a, SFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(B);
+ CMPtype r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_UNPACK_RAW_S(B, b);
+ FP_CMP_S(r, A, B, -2, 2);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r >= 0;
+}
diff --git a/libgcc/config/pru/gtd.c b/libgcc/config/pru/gtd.c
new file mode 100644
index 00000000000..bd3c3eddc36
--- /dev/null
+++ b/libgcc/config/pru/gtd.c
@@ -0,0 +1,45 @@
+/* Software floating-point emulation.
+ Return 1 iff a > b, 0 otherwise.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ This file 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with GCC; see the file COPYING.LIB. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#include <soft-fp/soft-fp.h>
+#include <soft-fp/double.h>
+
+CMPtype __pruabi_gtd(DFtype a, DFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(B);
+ CMPtype r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_UNPACK_RAW_D(B, b);
+ FP_CMP_D(r, A, B, -2, 2);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r > 0;
+}
diff --git a/libgcc/config/pru/gtf.c b/libgcc/config/pru/gtf.c
new file mode 100644
index 00000000000..ccd73eefda7
--- /dev/null
+++ b/libgcc/config/pru/gtf.c
@@ -0,0 +1,45 @@
+/* Software floating-point emulation.
+ Return 1 iff a > b, 0 otherwise.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ This file 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with GCC; see the file COPYING.LIB. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#include <soft-fp/soft-fp.h>
+#include <soft-fp/single.h>
+
+CMPtype __pruabi_gtf(SFtype a, SFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(B);
+ CMPtype r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_UNPACK_RAW_S(B, b);
+ FP_CMP_S(r, A, B, -2, 2);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r > 0;
+}
diff --git a/libgcc/config/pru/led.c b/libgcc/config/pru/led.c
new file mode 100644
index 00000000000..be230055ebf
--- /dev/null
+++ b/libgcc/config/pru/led.c
@@ -0,0 +1,45 @@
+/* Software floating-point emulation.
+ Return 1 iff a <= b, 0 otherwise.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ This file 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with GCC; see the file COPYING.LIB. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#include <soft-fp/soft-fp.h>
+#include <soft-fp/double.h>
+
+CMPtype __pruabi_led(DFtype a, DFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(B);
+ CMPtype r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_UNPACK_RAW_D(B, b);
+ FP_CMP_D(r, A, B, 2, 2);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r <= 0;
+}
diff --git a/libgcc/config/pru/lef.c b/libgcc/config/pru/lef.c
new file mode 100644
index 00000000000..43bc252a7d6
--- /dev/null
+++ b/libgcc/config/pru/lef.c
@@ -0,0 +1,45 @@
+/* Software floating-point emulation.
+ Return 1 iff a <= b, 0 otherwise.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ This file 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with GCC; see the file COPYING.LIB. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#include <soft-fp/soft-fp.h>
+#include <soft-fp/single.h>
+
+CMPtype __pruabi_lef(SFtype a, SFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(B);
+ CMPtype r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_UNPACK_RAW_S(B, b);
+ FP_CMP_S(r, A, B, 2, 2);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r <= 0;
+}
diff --git a/libgcc/config/pru/lib2bitcountHI.c b/libgcc/config/pru/lib2bitcountHI.c
new file mode 100644
index 00000000000..2de86dbebc4
--- /dev/null
+++ b/libgcc/config/pru/lib2bitcountHI.c
@@ -0,0 +1,43 @@
+/* libgcc routines for PRU
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
+ Based on lib2bitcountHI.c from MSP430 port.
+
+ 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/>. */
+
+typedef int sint32_type __attribute__ ((mode (SI)));
+typedef unsigned int uint32_type __attribute__ ((mode (SI)));
+typedef int sint16_type __attribute__ ((mode (HI)));
+typedef unsigned int uint16_type __attribute__ ((mode (HI)));
+typedef int sint08_type __attribute__ ((mode (QI)));
+typedef unsigned int uint08_type __attribute__ ((mode (QI)));
+typedef int word_type __attribute__ ((mode (__word__)));
+
+#define C3B(a,b,c) a##b##c
+#define C3(a,b,c) C3B(a,b,c)
+
+#define L_clzsi2
+#define L_ctzsi2
+#define L_ffssi2
+#define L_paritysi2
+#define L_popcountsi2
+
+#include "libgcc2.c"
diff --git a/libgcc/config/pru/lib2divHI.c b/libgcc/config/pru/lib2divHI.c
new file mode 100644
index 00000000000..9315530c99a
--- /dev/null
+++ b/libgcc/config/pru/lib2divHI.c
@@ -0,0 +1,42 @@
+/* HI mode divide routines for libgcc for PRU
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
+ Based on lib2divHI.c from MSP430 port.
+
+ 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/>. */
+
+typedef int sint32_type __attribute__ ((mode (SI)));
+typedef unsigned int uint32_type __attribute__ ((mode (SI)));
+typedef int sint16_type __attribute__ ((mode (HI)));
+typedef unsigned int uint16_type __attribute__ ((mode (HI)));
+typedef int sint08_type __attribute__ ((mode (QI)));
+typedef unsigned int uint08_type __attribute__ ((mode (QI)));
+typedef int word_type __attribute__ ((mode (__word__)));
+
+#define C3B(a,b,c) a##b##c
+#define C3(a,b,c) C3B(a,b,c)
+
+#define UINT_TYPE uint16_type
+#define SINT_TYPE sint16_type
+#define BITS_MINUS_1 15
+#define NAME_MODE hi
+
+#include "pru-divmod.h"
diff --git a/libgcc/config/pru/lib2divQI.c b/libgcc/config/pru/lib2divQI.c
new file mode 100644
index 00000000000..994788a868f
--- /dev/null
+++ b/libgcc/config/pru/lib2divQI.c
@@ -0,0 +1,42 @@
+/* QI mode divide routines for libgcc for PRU
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
+ Based on lib2divQI.c from MSP430 port.
+
+ 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/>. */
+
+typedef int sint32_type __attribute__ ((mode (SI)));
+typedef unsigned int uint32_type __attribute__ ((mode (SI)));
+typedef int sint16_type __attribute__ ((mode (HI)));
+typedef unsigned int uint16_type __attribute__ ((mode (HI)));
+typedef int sint08_type __attribute__ ((mode (QI)));
+typedef unsigned int uint08_type __attribute__ ((mode (QI)));
+typedef int word_type __attribute__ ((mode (__word__)));
+
+#define C3B(a,b,c) a##b##c
+#define C3(a,b,c) C3B(a,b,c)
+
+#define UINT_TYPE uint08_type
+#define SINT_TYPE sint08_type
+#define BITS_MINUS_1 7
+#define NAME_MODE qi
+
+#include "pru-divmod.h"
diff --git a/libgcc/config/pru/lib2divSI.c b/libgcc/config/pru/lib2divSI.c
new file mode 100644
index 00000000000..160b91fe82d
--- /dev/null
+++ b/libgcc/config/pru/lib2divSI.c
@@ -0,0 +1,48 @@
+/* SI mode divide routines for libgcc for PRU
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
+ Based on lib2divSI.c from MSP430 port.
+
+ 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/>. */
+
+typedef int sint32_type __attribute__ ((mode (SI)));
+typedef unsigned int uint32_type __attribute__ ((mode (SI)));
+typedef int sint16_type __attribute__ ((mode (HI)));
+typedef unsigned int uint16_type __attribute__ ((mode (HI)));
+typedef int sint08_type __attribute__ ((mode (QI)));
+typedef unsigned int uint08_type __attribute__ ((mode (QI)));
+typedef int word_type __attribute__ ((mode (__word__)));
+
+#define C3B(a,b,c) a##b##c
+#define C3(a,b,c) C3B(a,b,c)
+
+/* PRU ABI dictates the library function names. */
+#define __gnu_divsi3 __pruabi_divi
+#define __gnu_modsi3 __pruabi_remi
+#define __gnu_udivsi3 __pruabi_divu
+#define __gnu_umodsi3 __pruabi_remu
+
+#define UINT_TYPE uint32_type
+#define SINT_TYPE sint32_type
+#define BITS_MINUS_1 31
+#define NAME_MODE si
+
+#include "pru-divmod.h"
diff --git a/libgcc/config/pru/libgcc-eabi.ver b/libgcc/config/pru/libgcc-eabi.ver
new file mode 100644
index 00000000000..cd27a7ccef4
--- /dev/null
+++ b/libgcc/config/pru/libgcc-eabi.ver
@@ -0,0 +1,88 @@
+# Copyright (C) 2017-2019 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_9.0.0 {
+ __pruabi_asri
+ __pruabi_asrll
+ __pruabi_mpyll
+ __pruabi_negll
+ __pruabi_lslll
+ __pruabi_lsrll
+ __pruabi_fixfu
+ __pruabi_fixdu
+ __pruabi_fixflli
+ __pruabi_fixdlli
+ __pruabi_fixfull
+ __pruabi_fixdull
+ __pruabi_fltllif
+ __pruabi_fltllid
+ __pruabi_fltullf
+ __pruabi_fltulld
+ __pruabi_divlli
+ __pruabi_remlli
+ __pruabi_divull
+ __pruabi_remull
+ __pruabi_divremull
+ __pruabi_gef
+ __pruabi_gtf
+ __pruabi_lef
+ __pruabi_ltf
+ __pruabi_eqf
+ __pruabi_ged
+ __pruabi_gtd
+ __pruabi_led
+ __pruabi_ltd
+ __pruabi_eqd
+ __pruabi_addf
+ __pruabi_divf
+ __pruabi_neqf
+ __pruabi_cmpf
+ __pruabi_mpyf
+ __pruabi_negf
+ __pruabi_subf
+ __pruabi_unordf
+ __pruabi_fixfi
+ __pruabi_fltif
+ __pruabi_fltuf
+ __pruabi_addd
+ __pruabi_divd
+ __pruabi_neqd
+ __pruabi_cmpd
+ __pruabi_mpyd
+ __pruabi_negd
+ __pruabi_subd
+ __pruabi_unordd
+ __pruabi_fixdi
+ __pruabi_fltid
+ __pruabi_fltud
+ __pruabi_cvtfd
+ __pruabi_cvtdf
+ __pruabi_mulcf
+ __pruabi_mulcd
+ __pruabi_divcf
+ __pruabi_divcd
+
+ __gnu_ltsf2
+ __gnu_ltdf2
+ __gnu_gesf2
+ __gnu_gedf2
+ __gnu_gtsf2
+ __gnu_gtdf2
+ __gnu_eqsf2
+ __gnu_eqdf2
+}
diff --git a/libgcc/config/pru/ltd.c b/libgcc/config/pru/ltd.c
new file mode 100644
index 00000000000..ab0da9cca75
--- /dev/null
+++ b/libgcc/config/pru/ltd.c
@@ -0,0 +1,45 @@
+/* Software floating-point emulation.
+ Return 1 iff a < b, 0 otherwise.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ This file 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with GCC; see the file COPYING.LIB. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#include <soft-fp/soft-fp.h>
+#include <soft-fp/double.h>
+
+CMPtype __pruabi_ltd(DFtype a, DFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_D(A); FP_DECL_D(B);
+ CMPtype r;
+
+ FP_UNPACK_RAW_D(A, a);
+ FP_UNPACK_RAW_D(B, b);
+ FP_CMP_D(r, A, B, 2, 2);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r < 0;
+}
diff --git a/libgcc/config/pru/ltf.c b/libgcc/config/pru/ltf.c
new file mode 100644
index 00000000000..92c87718148
--- /dev/null
+++ b/libgcc/config/pru/ltf.c
@@ -0,0 +1,45 @@
+/* Software floating-point emulation.
+ Return 1 iff a < b, 0 otherwise.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
+ Contributed by Richard Henderson (rth@cygnus.com) and
+ Jakub Jelinek (jj@ultra.linux.cz).
+
+ This file is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ This file 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with GCC; see the file COPYING.LIB. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#include <soft-fp/soft-fp.h>
+#include <soft-fp/single.h>
+
+CMPtype __pruabi_ltf(SFtype a, SFtype b)
+{
+ FP_DECL_EX;
+ FP_DECL_S(A); FP_DECL_S(B);
+ CMPtype r;
+
+ FP_UNPACK_RAW_S(A, a);
+ FP_UNPACK_RAW_S(B, b);
+ FP_CMP_S(r, A, B, 2, 2);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r < 0;
+}
diff --git a/libgcc/config/pru/mpyll.S b/libgcc/config/pru/mpyll.S
new file mode 100644
index 00000000000..a0c862e4c6c
--- /dev/null
+++ b/libgcc/config/pru/mpyll.S
@@ -0,0 +1,57 @@
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
+ Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+
+ This file 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.
+
+ This file 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/>.
+
+ (al + C * ah) * (bl + C * bh) = al * bl
+ + C * ah * bl
+ + C * al * bh
+ + C * C * ah * bh -> discard, overflow
+ Where C=(1 << 32)
+ */
+
+#include "pru-asm.h"
+
+ .global SYM(__pruabi_mpyll)
+ FUNC(__pruabi_mpyll)
+SYM(__pruabi_mpyll):
+ /* + C * ah * bl */
+ mov r28, r15
+ mov r29, r16
+ nop
+ xin 0, r26, 8
+
+ /* + C * al * bh */
+ mov r28, r14
+ mov r29, r17
+ mov r15, r26 /* "Loose" ah, record only reslo. */
+ xin 0, r26, 8
+
+ /* + al * bl */
+ /* mov r28, r14 -> No need, already loaded. */
+ mov r29, r16
+ add r15, r15, r26
+ xin 0, r26, 8
+ mov r14, r26
+ add r15, r15, r27
+
+ ret
+
+ ENDFUNC(__pruabi_mpyll)
diff --git a/libgcc/config/pru/pru-abi.h b/libgcc/config/pru/pru-abi.h
new file mode 100644
index 00000000000..4b34cc52a64
--- /dev/null
+++ b/libgcc/config/pru/pru-abi.h
@@ -0,0 +1,109 @@
+/* Header file for PRU ABI versions of libgcc functions.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
+ Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+ Based on c6x/c6x-abi.h
+
+ 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
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+
+/* Make __pruabi_AEABI_NAME an alias for __GCC_NAME. */
+#define RENAME_LIBRARY(GCC_NAME, AEABI_NAME) \
+ __asm__ (".globl\t__pruabi_" #AEABI_NAME "\n" \
+ ".set\t__pruabi_" #AEABI_NAME \
+ ", __gnu_" #GCC_NAME "\n");
+
+/* Rename helper functions to the names specified in the PRU ELF ABI. */
+#ifdef L_divsi3
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divsi3, divi)
+#endif
+#ifdef L_divdi3
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divdi3, divlli)
+#endif
+#ifdef L_udivsi3
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivsi3, divu)
+#endif
+#ifdef L_udivdi3
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivdi3, divull)
+#endif
+#ifdef L_udivmoddi4
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivmoddi4, divremull)
+#endif
+#ifdef L_modsi3
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (modsi3, remi)
+#endif
+#ifdef L_moddi3
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (moddi3, remlli)
+#endif
+#ifdef L_umodsi3
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (umodsi3, remu)
+#endif
+#ifdef L_umoddi3
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (umoddi3, remull)
+#endif
+#ifdef L_negdi2
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (negdi2, negll)
+#endif
+#ifdef L_muldi3
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, mpyll)
+#endif
+#ifdef L_ashrdi3
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashrdi3, asrll)
+#endif
+#ifdef L_lshrdi3
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (lshrdi3, lsrll)
+#endif
+#ifdef L_ashldi3
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashldi3, lslll)
+#endif
+
+/* The following are excluded from softfp due to softfp_exclude_libgcc2,
+ so we rename them here rather than in sfp-machine.h. */
+#ifdef L_fixdfdi
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixdfdi, fixdlli)
+#endif
+#ifdef L_fixunsdfsi
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfsi, fixdu)
+#endif
+#ifdef L_fixunsdfdi
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfdi, fixdull)
+#endif
+#ifdef L_fixsfdi
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfdi, fixflli)
+#endif
+#ifdef L_fixunssfsi
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfsi, fixfu)
+#endif
+#ifdef L_fixunssfdi
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfdi, fixfull)
+#endif
+#ifdef L_floatdidf
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdidf, fltllid)
+#endif
+#ifdef L_floatundidf
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatundidf, fltulld)
+#endif
+#ifdef L_floatdisf
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, fltllif)
+#endif
+#ifdef L_floatundisf
+#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatundisf, fltullf)
+#endif
+
+#define LIBGCC2_GNU_PREFIX
diff --git a/libgcc/config/pru/pru-asm.h b/libgcc/config/pru/pru-asm.h
new file mode 100644
index 00000000000..01307dd703c
--- /dev/null
+++ b/libgcc/config/pru/pru-asm.h
@@ -0,0 +1,35 @@
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
+ Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+
+ This file 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.
+
+ This file 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/>. */
+
+/* ANSI concatenation macros. */
+
+#define CONCAT1(a, b) CONCAT2(a, b)
+#define CONCAT2(a, b) a ## b
+
+/* Use the right prefix for global labels. */
+
+#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x)
+
+#define FUNC(X) .type SYM(X),@function
+#define HIDDEN_FUNC(X) FUNC(X)` .hidden SYM(X)
+#define ENDFUNC0(X) CONCAT1(.Lfe_,X): .size X,CONCAT1(.Lfe_,X)-X
+#define ENDFUNC(X) ENDFUNC0(SYM(X))
diff --git a/libgcc/config/pru/pru-divmod.h b/libgcc/config/pru/pru-divmod.h
new file mode 100644
index 00000000000..59b244454d0
--- /dev/null
+++ b/libgcc/config/pru/pru-divmod.h
@@ -0,0 +1,117 @@
+/* libgcc routines for PRU
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
+ Based on msp430-divmod.h from MSP430 port.
+
+ 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/>. */
+
+UINT_TYPE C3(udivmod,NAME_MODE,4) (UINT_TYPE, UINT_TYPE, word_type);
+SINT_TYPE C3(__gnu_div,NAME_MODE,3) (SINT_TYPE, SINT_TYPE);
+SINT_TYPE C3(__gnu_mod,NAME_MODE,3) (SINT_TYPE, SINT_TYPE);
+UINT_TYPE C3(__gnu_udiv,NAME_MODE,3) (UINT_TYPE, UINT_TYPE);
+UINT_TYPE C3(__gnu_umod,NAME_MODE,3) (UINT_TYPE, UINT_TYPE);
+
+UINT_TYPE
+C3(udivmod,NAME_MODE,4) (UINT_TYPE num, UINT_TYPE den, word_type modwanted)
+{
+ UINT_TYPE bit = 1;
+ UINT_TYPE res = 0;
+
+ while (den < num && bit && !(den & (1L << BITS_MINUS_1)))
+ {
+ den <<= 1;
+ bit <<= 1;
+ }
+ while (bit)
+ {
+ if (num >= den)
+ {
+ num -= den;
+ res |= bit;
+ }
+ bit >>= 1;
+ den >>= 1;
+ }
+ if (modwanted)
+ return num;
+ return res;
+}
+
+SINT_TYPE
+C3(__gnu_div,NAME_MODE,3) (SINT_TYPE a, SINT_TYPE b)
+{
+ word_type neg = 0;
+ SINT_TYPE res;
+
+ if (a < 0)
+ {
+ a = -a;
+ neg = !neg;
+ }
+
+ if (b < 0)
+ {
+ b = -b;
+ neg = !neg;
+ }
+
+ res = C3(udivmod,NAME_MODE,4) (a, b, 0);
+
+ if (neg)
+ res = -res;
+
+ return res;
+}
+
+SINT_TYPE
+C3(__gnu_mod,NAME_MODE,3) (SINT_TYPE a, SINT_TYPE b)
+{
+ word_type neg = 0;
+ SINT_TYPE res;
+
+ if (a < 0)
+ {
+ a = -a;
+ neg = 1;
+ }
+
+ if (b < 0)
+ b = -b;
+
+ res = C3(udivmod,NAME_MODE,4) (a, b, 1);
+
+ if (neg)
+ res = -res;
+
+ return res;
+}
+
+UINT_TYPE
+C3(__gnu_udiv,NAME_MODE,3) (UINT_TYPE a, UINT_TYPE b)
+{
+ return C3(udivmod,NAME_MODE,4) (a, b, 0);
+}
+
+UINT_TYPE
+C3(__gnu_umod,NAME_MODE,3) (UINT_TYPE a, UINT_TYPE b)
+{
+ return C3(udivmod,NAME_MODE,4) (a, b, 1);
+}
diff --git a/libgcc/config/pru/sfp-machine.h b/libgcc/config/pru/sfp-machine.h
new file mode 100644
index 00000000000..ec86f6c8c62
--- /dev/null
+++ b/libgcc/config/pru/sfp-machine.h
@@ -0,0 +1,125 @@
+/* Soft-FP definitions for TI PRU.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
+ Based on C6X soft-fp header.
+
+ This files is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ This file 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with GCC; see the file COPYING.LIB. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#define _FP_W_TYPE_SIZE 32
+#define _FP_W_TYPE unsigned long
+#define _FP_WS_TYPE signed long
+#define _FP_I_TYPE long
+
+#define _FP_MUL_MEAT_S(R,X,Y) \
+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_D(R,X,Y) \
+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_Q(R,X,Y) \
+ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
+
+#define _FP_NANFRAC_H ((_FP_QNANBIT_H << 1) - 1)
+#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
+#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
+#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
+#define _FP_NANSIGN_H 0
+#define _FP_NANSIGN_S 0
+#define _FP_NANSIGN_D 0
+#define _FP_NANSIGN_Q 0
+
+#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
+
+/* Someone please check this. */
+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
+ do { \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
+ { \
+ R##_s = Y##_s; \
+ _FP_FRAC_COPY_##wc(R,Y); \
+ } \
+ else \
+ { \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R,X); \
+ } \
+ R##_c = FP_CLS_NAN; \
+ } while (0)
+
+#define __LITTLE_ENDIAN 1234
+#define __BIG_ENDIAN 4321
+
+#if defined _BIG_ENDIAN
+# define __BYTE_ORDER __BIG_ENDIAN
+#else
+# define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+/* Not checked. */
+#define _FP_TININESS_AFTER_ROUNDING 0
+
+
+/* Define ALIASNAME as a strong alias for NAME. */
+# define strong_alias(name, aliasname) _strong_alias(name, aliasname)
+# define _strong_alias(name, aliasname) \
+ extern __typeof (name) aliasname __attribute__ ((alias (#name)));
+
+/* Rename helper functions to the names specified in the PRU ELF ABI. */
+#define __fixdfsi __pruabi_fixdi
+#define __fixsfsi __pruabi_fixfi
+#define __floatsidf __pruabi_fltid
+#define __floatunsidf __pruabi_fltud
+#define __floatsisf __pruabi_fltif
+#define __floatunsisf __pruabi_fltuf
+#define __truncdfsf2 __pruabi_cvtdf
+#define __extendsfdf2 __pruabi_cvtfd
+#define __adddf3 __pruabi_addd
+#define __subdf3 __pruabi_subd
+#define __muldf3 __pruabi_mpyd
+#define __divdf3 __pruabi_divd
+#define __negdf2 __pruabi_negd
+#define __absdf2 __pruabi_absd
+#define __addsf3 __pruabi_addf
+#define __subsf3 __pruabi_subf
+#define __mulsf3 __pruabi_mpyf
+#define __divsf3 __pruabi_divf
+#define __negsf2 __pruabi_negf
+#define __abssf2 __pruabi_absf
+#define __lesf2 __pruabi_cmpf
+#define __ledf2 __pruabi_cmpd
+#define __ltsf2 __gnu_ltsf2
+#define __ltdf2 __gnu_ltdf2
+#define __gesf2 __gnu_gesf2
+#define __gedf2 __gnu_gedf2
+#define __gtsf2 __gnu_gtsf2
+#define __gtdf2 __gnu_gtdf2
+#define __eqsf2 __gnu_eqsf2
+#define __eqdf2 __gnu_eqdf2
+#define __nesf2 __pruabi_neqf
+#define __nedf2 __pruabi_neqd
+#define __unordsf2 __pruabi_unordf
+#define __unorddf2 __pruabi_unordd
diff --git a/libgcc/config/pru/t-pru b/libgcc/config/pru/t-pru
new file mode 100644
index 00000000000..1df86a35159
--- /dev/null
+++ b/libgcc/config/pru/t-pru
@@ -0,0 +1,50 @@
+# Makefile fragment for building LIBGCC for the TI PRU processor.
+# Copyright (C) 2014-2019 Free Software Foundation, Inc.
+# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
+#
+# 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/>.
+
+# Note - we have separate versions of the lib2div<mode> files
+# as the functions are quite large and we do not want to pull
+# in unneeded division routines.
+
+LIB2ADD += \
+ $(srcdir)/config/pru/lib2divQI.c \
+ $(srcdir)/config/pru/lib2divHI.c \
+ $(srcdir)/config/pru/lib2divSI.c \
+ $(srcdir)/config/pru/lib2bitcountHI.c \
+ $(srcdir)/config/pru/mpyll.S \
+ $(srcdir)/config/pru/gef.c \
+ $(srcdir)/config/pru/gtf.c \
+ $(srcdir)/config/pru/lef.c \
+ $(srcdir)/config/pru/ltf.c \
+ $(srcdir)/config/pru/eqf.c \
+ $(srcdir)/config/pru/ged.c \
+ $(srcdir)/config/pru/gtd.c \
+ $(srcdir)/config/pru/led.c \
+ $(srcdir)/config/pru/ltd.c \
+ $(srcdir)/config/pru/eqd.c \
+ $(srcdir)/config/pru/asri.c
+
+HOST_LIBGCC2_CFLAGS += -Os -ffunction-sections -fdata-sections
+
+LIB2FUNCS_EXCLUDE = _muldi3
+
+SHLIB_MAPFILES += $(srcdir)/config/pru/libgcc-eabi.ver
+# Local Variables:
+# mode: Makefile
+# End:
diff --git a/libgcc/config/riscv/atomic.c b/libgcc/config/riscv/atomic.c
index 894a3e070d3..b6c80674448 100644
--- a/libgcc/config/riscv/atomic.c
+++ b/libgcc/config/riscv/atomic.c
@@ -1,6 +1,6 @@
/* Legacy sub-word atomics for RISC-V.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/riscv/div.S b/libgcc/config/riscv/div.S
index 922a4338042..e97247b4b03 100644
--- a/libgcc/config/riscv/div.S
+++ b/libgcc/config/riscv/div.S
@@ -1,6 +1,6 @@
/* Integer division routines for RISC-V.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/riscv/linux-unwind.h b/libgcc/config/riscv/linux-unwind.h
index 8c71da4a3f4..f309b087b14 100644
--- a/libgcc/config/riscv/linux-unwind.h
+++ b/libgcc/config/riscv/linux-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/riscv/muldi3.S b/libgcc/config/riscv/muldi3.S
index 443b0d2aea4..a67c711cd59 100644
--- a/libgcc/config/riscv/muldi3.S
+++ b/libgcc/config/riscv/muldi3.S
@@ -1,6 +1,6 @@
/* Integer multiplication routines for RISC-V.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/riscv/multi3.c b/libgcc/config/riscv/multi3.c
index 159eb76c306..5838b896953 100644
--- a/libgcc/config/riscv/multi3.c
+++ b/libgcc/config/riscv/multi3.c
@@ -1,6 +1,6 @@
/* Multiplication two double word integers for RISC-V.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/riscv/riscv-asm.h b/libgcc/config/riscv/riscv-asm.h
index 50ee1404cb7..59726140e78 100644
--- a/libgcc/config/riscv/riscv-asm.h
+++ b/libgcc/config/riscv/riscv-asm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/riscv/save-restore.S b/libgcc/config/riscv/save-restore.S
index a76c9780902..9a787bc1dc3 100644
--- a/libgcc/config/riscv/save-restore.S
+++ b/libgcc/config/riscv/save-restore.S
@@ -1,6 +1,6 @@
/* Callee-saved register spill and fill routines for RISC-V.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/riscv/sfp-machine.h b/libgcc/config/riscv/sfp-machine.h
index 2988a09c61b..43951ef7b11 100644
--- a/libgcc/config/riscv/sfp-machine.h
+++ b/libgcc/config/riscv/sfp-machine.h
@@ -1,6 +1,6 @@
/* Software floating-point machine description for RISC-V.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/riscv/t-softfp32 b/libgcc/config/riscv/t-softfp32
index 1bd51e803d1..59be1df827e 100644
--- a/libgcc/config/riscv/t-softfp32
+++ b/libgcc/config/riscv/t-softfp32
@@ -12,7 +12,11 @@ softfp_float_modes := tf
softfp_extensions := sftf dftf
softfp_truncations := tfsf tfdf
+# Enable divide routines to make -mno-fdiv work.
+softfp_extras := divsf3 divdf3
+
else
+# !ABI_DOUBLE
softfp_float_modes := df tf
softfp_extensions := sfdf sftf dftf
@@ -20,7 +24,20 @@ softfp_truncations := dfsf tfsf tfdf
ifndef ABI_SINGLE
softfp_float_modes += sf
+else
+# ABI_SINGLE
+
+# Enable divide routines to make -mno-fdiv work.
+softfp_extras := divsf3
+
endif
endif
+
+else
+# ABI_QUAD
+
+# Enable divide routines to make -mno-fdiv work.
+softfp_extras := divsf3 divdf3 divtf3
+
endif
diff --git a/libgcc/config/rl78/adddi3.S b/libgcc/config/rl78/adddi3.S
index 0113f1668e6..6367fb36ffa 100644
--- a/libgcc/config/rl78/adddi3.S
+++ b/libgcc/config/rl78/adddi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017-2018 Free Software Foundation, Inc.
+; Copyright (C) 2017-2019 Free Software Foundation, Inc.
; Contributed by Sebastian Perta.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rl78/anddi3.S b/libgcc/config/rl78/anddi3.S
index 849d4005d35..3ef0f513671 100644
--- a/libgcc/config/rl78/anddi3.S
+++ b/libgcc/config/rl78/anddi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017 Free Software Foundation, Inc.
+; Copyright (C) 2017-2019 Free Software Foundation, Inc.
; Contributed by Sebastian Perta.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rl78/bit-count.S b/libgcc/config/rl78/bit-count.S
index 64619f7aabc..d3bd1ba0bde 100644
--- a/libgcc/config/rl78/bit-count.S
+++ b/libgcc/config/rl78/bit-count.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2018 Free Software Foundation, Inc.
+; Copyright (C) 2012-2019 Free Software Foundation, Inc.
; Contributed by Red Hat.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rl78/cmpsi2.S b/libgcc/config/rl78/cmpsi2.S
index a6366d2847d..24e80a935fc 100644
--- a/libgcc/config/rl78/cmpsi2.S
+++ b/libgcc/config/rl78/cmpsi2.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2011-2018 Free Software Foundation, Inc.
+; Copyright (C) 2011-2019 Free Software Foundation, Inc.
; Contributed by Red Hat.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rl78/divmodhi.S b/libgcc/config/rl78/divmodhi.S
index ed9295b05e8..34b8224b314 100644
--- a/libgcc/config/rl78/divmodhi.S
+++ b/libgcc/config/rl78/divmodhi.S
@@ -1,5 +1,5 @@
/* HImode div/mod functions for the GCC support library for the Renesas RL78 processors.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/rl78/divmodqi.S b/libgcc/config/rl78/divmodqi.S
index d465d26f554..792d76fd8dd 100644
--- a/libgcc/config/rl78/divmodqi.S
+++ b/libgcc/config/rl78/divmodqi.S
@@ -1,5 +1,5 @@
/* QImode div/mod functions for the GCC support library for the Renesas RL78 processors.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/rl78/divmodsi.S b/libgcc/config/rl78/divmodsi.S
index 9e5a8d659f1..df0bec0f150 100644
--- a/libgcc/config/rl78/divmodsi.S
+++ b/libgcc/config/rl78/divmodsi.S
@@ -1,5 +1,5 @@
/* SImode div/mod functions for the GCC support library for the Renesas RL78 processors.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/rl78/lib2div.c b/libgcc/config/rl78/lib2div.c
index d1912b06713..14dccfec34a 100644
--- a/libgcc/config/rl78/lib2div.c
+++ b/libgcc/config/rl78/lib2div.c
@@ -1,5 +1,5 @@
/* libgcc routines for RL78
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/rl78/lib2mul.c b/libgcc/config/rl78/lib2mul.c
index 66b2876e22c..59f68f80c4a 100644
--- a/libgcc/config/rl78/lib2mul.c
+++ b/libgcc/config/rl78/lib2mul.c
@@ -1,5 +1,5 @@
/* libgcc routines for RL78
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/rl78/lib2shift.c b/libgcc/config/rl78/lib2shift.c
index 751bb5e0d96..1ec7e623717 100644
--- a/libgcc/config/rl78/lib2shift.c
+++ b/libgcc/config/rl78/lib2shift.c
@@ -1,5 +1,5 @@
/* Shift functions for the GCC support library for the Renesas RL78 processors.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/rl78/lshrsi3.S b/libgcc/config/rl78/lshrsi3.S
index 894158fbfb8..b48c49913d5 100644
--- a/libgcc/config/rl78/lshrsi3.S
+++ b/libgcc/config/rl78/lshrsi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2011-2018 Free Software Foundation, Inc.
+; Copyright (C) 2011-2019 Free Software Foundation, Inc.
; Contributed by Red Hat.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rl78/mulsi3.S b/libgcc/config/rl78/mulsi3.S
index 1a4af704966..665388b1dd3 100644
--- a/libgcc/config/rl78/mulsi3.S
+++ b/libgcc/config/rl78/mulsi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2011-2018 Free Software Foundation, Inc.
+; Copyright (C) 2011-2019 Free Software Foundation, Inc.
; Contributed by Red Hat.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rl78/rl78-divmod.h b/libgcc/config/rl78/rl78-divmod.h
index 050d0f4869e..556922fb783 100644
--- a/libgcc/config/rl78/rl78-divmod.h
+++ b/libgcc/config/rl78/rl78-divmod.h
@@ -1,5 +1,5 @@
/* libgcc routines for RL78
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/rl78/rl78-mul.h b/libgcc/config/rl78/rl78-mul.h
index 5aa0984aa7f..ebe030bc48c 100644
--- a/libgcc/config/rl78/rl78-mul.h
+++ b/libgcc/config/rl78/rl78-mul.h
@@ -1,5 +1,5 @@
/* libgcc routines for RL78
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/rl78/signbit.S b/libgcc/config/rl78/signbit.S
index dde53a4d55f..37072b2d3eb 100644
--- a/libgcc/config/rl78/signbit.S
+++ b/libgcc/config/rl78/signbit.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2018 Free Software Foundation, Inc.
+; Copyright (C) 2012-2019 Free Software Foundation, Inc.
; Contributed by Red Hat.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rl78/smaxdi3.S b/libgcc/config/rl78/smaxdi3.S
index fe52e21ad5a..52dd2cf496d 100644
--- a/libgcc/config/rl78/smaxdi3.S
+++ b/libgcc/config/rl78/smaxdi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017 Free Software Foundation, Inc.
+; Copyright (C) 2017-2019 Free Software Foundation, Inc.
; Contributed by Sebastian Perta.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rl78/smindi3.S b/libgcc/config/rl78/smindi3.S
index 51606263442..b575fbe075f 100644
--- a/libgcc/config/rl78/smindi3.S
+++ b/libgcc/config/rl78/smindi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017 Free Software Foundation, Inc.
+; Copyright (C) 2017-2019 Free Software Foundation, Inc.
; Contributed by Sebastian Perta.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rl78/subdi3.S b/libgcc/config/rl78/subdi3.S
index 2c4c84641f8..b9ba785309e 100644
--- a/libgcc/config/rl78/subdi3.S
+++ b/libgcc/config/rl78/subdi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017-2018 Free Software Foundation, Inc.
+; Copyright (C) 2017-2019 Free Software Foundation, Inc.
; Contributed by Sebastian Perta.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rl78/t-rl78 b/libgcc/config/rl78/t-rl78
index c9eddd92a6b..6e9b6944407 100644
--- a/libgcc/config/rl78/t-rl78
+++ b/libgcc/config/rl78/t-rl78
@@ -1,5 +1,5 @@
# Makefile fragment for building LIBGCC for the Renesas RL78 target.
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2019 Free Software Foundation, Inc.
# Contributed by Red Hat.
#
# This file is part of GCC.
diff --git a/libgcc/config/rl78/trampoline.S b/libgcc/config/rl78/trampoline.S
index d3694d5775e..1d15dc84728 100644
--- a/libgcc/config/rl78/trampoline.S
+++ b/libgcc/config/rl78/trampoline.S
@@ -1,5 +1,5 @@
/* libgcc routines for RL78
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/rl78/umaxdi3.S b/libgcc/config/rl78/umaxdi3.S
index 465ba1a207a..d422fe2093a 100644
--- a/libgcc/config/rl78/umaxdi3.S
+++ b/libgcc/config/rl78/umaxdi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017 Free Software Foundation, Inc.
+; Copyright (C) 2017-2019 Free Software Foundation, Inc.
; Contributed by Sebastian Perta.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rl78/umindi3.S b/libgcc/config/rl78/umindi3.S
index 903bbfdab64..2bbc5e022e9 100644
--- a/libgcc/config/rl78/umindi3.S
+++ b/libgcc/config/rl78/umindi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017 Free Software Foundation, Inc.
+; Copyright (C) 2017-2019 Free Software Foundation, Inc.
; Contributed by Sebastian Perta.
;
; This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/_divkc3.c b/libgcc/config/rs6000/_divkc3.c
index 13bd5bdc7a3..91de2bace6c 100644
--- a/libgcc/config/rs6000/_divkc3.c
+++ b/libgcc/config/rs6000/_divkc3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/_mulkc3.c b/libgcc/config/rs6000/_mulkc3.c
index da03e657d1f..4a331641502 100644
--- a/libgcc/config/rs6000/_mulkc3.c
+++ b/libgcc/config/rs6000/_mulkc3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/_powikf2.c b/libgcc/config/rs6000/_powikf2.c
index 7afd0963ca9..e059f7b06cb 100644
--- a/libgcc/config/rs6000/_powikf2.c
+++ b/libgcc/config/rs6000/_powikf2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/aix-unwind.h b/libgcc/config/rs6000/aix-unwind.h
index e811ec01de7..a0e998ceb40 100644
--- a/libgcc/config/rs6000/aix-unwind.h
+++ b/libgcc/config/rs6000/aix-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for AIX.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -24,12 +24,12 @@
/* Useful register numbers. */
-#define LR_REGNO 65
-#define CR2_REGNO 70
-#define XER_REGNO 76
-#define FIRST_ALTIVEC_REGNO 77
-#define VRSAVE_REGNO 109
-#define VSCR_REGNO 110
+#define R_LR 65
+#define R_CR2 70
+#define R_XER 76
+#define R_FIRST_ALTIVEC 77
+#define R_VRSAVE 109
+#define R_VSCR 110
/* If the current unwind info (FS) does not contain explicit info
saving R2, then we have to do a minor amount of code reading to
@@ -44,7 +44,7 @@
{ \
unsigned int *insn \
= (unsigned int *) \
- _Unwind_GetGR ((CTX), LR_REGNO); \
+ _Unwind_GetGR ((CTX), R_LR); \
if (*insn == 0xE8410028) \
_Unwind_SetGRPtr ((CTX), 2, (CTX)->cfa + 40); \
} \
@@ -56,7 +56,7 @@
{ \
unsigned int *insn \
= (unsigned int *) \
- _Unwind_GetGR ((CTX), LR_REGNO); \
+ _Unwind_GetGR ((CTX), R_LR); \
if (*insn == 0x80410014) \
_Unwind_SetGRPtr ((CTX), 2, (CTX)->cfa + 20); \
} \
@@ -241,9 +241,9 @@ ppc_aix_fallback_frame_state (struct _Unwind_Context *context,
if (i != __LIBGCC_STACK_POINTER_REGNUM__)
REGISTER_CFA_OFFSET_FOR (fs, i, &mctx->gpr[i], new_cfa);
- REGISTER_CFA_OFFSET_FOR (fs, CR2_REGNO, &mctx->cr, new_cfa);
- REGISTER_CFA_OFFSET_FOR (fs, XER_REGNO, &mctx->xer, new_cfa);
- REGISTER_CFA_OFFSET_FOR (fs, LR_REGNO, &mctx->lr, new_cfa);
+ REGISTER_CFA_OFFSET_FOR (fs, R_CR2, &mctx->cr, new_cfa);
+ REGISTER_CFA_OFFSET_FOR (fs, R_XER, &mctx->xer, new_cfa);
+ REGISTER_CFA_OFFSET_FOR (fs, R_LR, &mctx->lr, new_cfa);
fs->retaddr_column = RETURN_COLUMN;
REGISTER_CFA_OFFSET_FOR (fs, RETURN_COLUMN, &mctx->iar, new_cfa);
@@ -268,10 +268,10 @@ ppc_aix_fallback_frame_state (struct _Unwind_Context *context,
for (i = 0; i < 32; i++)
REGISTER_CFA_OFFSET_FOR
- (fs, i+FIRST_ALTIVEC_REGNO, &vstate->regs[i], new_cfa);
+ (fs, i+R_FIRST_ALTIVEC, &vstate->regs[i], new_cfa);
- REGISTER_CFA_OFFSET_FOR (fs, VSCR_REGNO, &vstate->vscr, new_cfa);
- REGISTER_CFA_OFFSET_FOR (fs, VRSAVE_REGNO, &vstate->vrsave, new_cfa);
+ REGISTER_CFA_OFFSET_FOR (fs, R_VSCR, &vstate->vscr, new_cfa);
+ REGISTER_CFA_OFFSET_FOR (fs, R_VRSAVE, &vstate->vrsave, new_cfa);
}
}
diff --git a/libgcc/config/rs6000/atexit.c b/libgcc/config/rs6000/atexit.c
index 19a8abde4bd..77652ea8858 100644
--- a/libgcc/config/rs6000/atexit.c
+++ b/libgcc/config/rs6000/atexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
NOTE: This source is derived from an old version taken from the GNU C
Library (glibc).
diff --git a/libgcc/config/rs6000/crtcxa.c b/libgcc/config/rs6000/crtcxa.c
index 93475736be7..4c863a53c39 100644
--- a/libgcc/config/rs6000/crtcxa.c
+++ b/libgcc/config/rs6000/crtcxa.c
@@ -1,5 +1,5 @@
/* __dso_handle initialization for AIX.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
Written by David Edelsohn, IBM.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/crtdbase.S b/libgcc/config/rs6000/crtdbase.S
index 1ed31a5caef..f529a165758 100644
--- a/libgcc/config/rs6000/crtdbase.S
+++ b/libgcc/config/rs6000/crtdbase.S
@@ -1,6 +1,6 @@
/* Defines __gcc_unwind_dbase
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/rs6000/crtresfpr.S b/libgcc/config/rs6000/crtresfpr.S
index 0f31c14521e..761c0442b24 100644
--- a/libgcc/config/rs6000/crtresfpr.S
+++ b/libgcc/config/rs6000/crtresfpr.S
@@ -1,7 +1,7 @@
/*
* Special support for eabi and SVR4
*
- * Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2019 Free Software Foundation, Inc.
* Written By Michael Meissner
* 64-bit support written by David Edelsohn
*
diff --git a/libgcc/config/rs6000/crtresgpr.S b/libgcc/config/rs6000/crtresgpr.S
index 16572fa69de..7a41432add2 100644
--- a/libgcc/config/rs6000/crtresgpr.S
+++ b/libgcc/config/rs6000/crtresgpr.S
@@ -1,7 +1,7 @@
/*
* Special support for eabi and SVR4
*
- * Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2019 Free Software Foundation, Inc.
* Written By Michael Meissner
* 64-bit support written by David Edelsohn
*
diff --git a/libgcc/config/rs6000/crtrestvr.S b/libgcc/config/rs6000/crtrestvr.S
index ba2b2623301..3155c406f1c 100644
--- a/libgcc/config/rs6000/crtrestvr.S
+++ b/libgcc/config/rs6000/crtrestvr.S
@@ -1,6 +1,6 @@
/* Routines for restoring vector registers.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Written by Alan Modra, IBM
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/crtresxfpr.S b/libgcc/config/rs6000/crtresxfpr.S
index fc8752350d6..10687485710 100644
--- a/libgcc/config/rs6000/crtresxfpr.S
+++ b/libgcc/config/rs6000/crtresxfpr.S
@@ -1,7 +1,7 @@
/*
* Special support for eabi and SVR4
*
- * Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2019 Free Software Foundation, Inc.
* Written By Michael Meissner
* 64-bit support written by David Edelsohn
*
diff --git a/libgcc/config/rs6000/crtresxgpr.S b/libgcc/config/rs6000/crtresxgpr.S
index 5cd49afcea7..83efb764339 100644
--- a/libgcc/config/rs6000/crtresxgpr.S
+++ b/libgcc/config/rs6000/crtresxgpr.S
@@ -1,7 +1,7 @@
/*
* Special support for eabi and SVR4
*
- * Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2019 Free Software Foundation, Inc.
* Written By Michael Meissner
* 64-bit support written by David Edelsohn
*
diff --git a/libgcc/config/rs6000/crtsavevr.S b/libgcc/config/rs6000/crtsavevr.S
index 077e33f34d5..43f9623e87f 100644
--- a/libgcc/config/rs6000/crtsavevr.S
+++ b/libgcc/config/rs6000/crtsavevr.S
@@ -1,6 +1,6 @@
/* Routines for saving vector registers.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Written by Alan Modra, IBM
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/crtsavfpr.S b/libgcc/config/rs6000/crtsavfpr.S
index d52bddc6b02..9f794ce1e9b 100644
--- a/libgcc/config/rs6000/crtsavfpr.S
+++ b/libgcc/config/rs6000/crtsavfpr.S
@@ -1,7 +1,7 @@
/*
* Special support for eabi and SVR4
*
- * Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2019 Free Software Foundation, Inc.
* Written By Michael Meissner
* 64-bit support written by David Edelsohn
*
diff --git a/libgcc/config/rs6000/crtsavgpr.S b/libgcc/config/rs6000/crtsavgpr.S
index 16384c6ee7e..999e1edcdda 100644
--- a/libgcc/config/rs6000/crtsavgpr.S
+++ b/libgcc/config/rs6000/crtsavgpr.S
@@ -1,7 +1,7 @@
/*
* Special support for eabi and SVR4
*
- * Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2019 Free Software Foundation, Inc.
* Written By Michael Meissner
* 64-bit support written by David Edelsohn
*
diff --git a/libgcc/config/rs6000/cxa_atexit.c b/libgcc/config/rs6000/cxa_atexit.c
index 0801565efb3..6956cb5ea97 100644
--- a/libgcc/config/rs6000/cxa_atexit.c
+++ b/libgcc/config/rs6000/cxa_atexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
NOTE: This source is derived from an old version taken from the GNU C
Library (glibc).
diff --git a/libgcc/config/rs6000/cxa_finalize.c b/libgcc/config/rs6000/cxa_finalize.c
index 6a65a26c3ae..fe6621b799f 100644
--- a/libgcc/config/rs6000/cxa_finalize.c
+++ b/libgcc/config/rs6000/cxa_finalize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
NOTE: This source is derived from an old version taken from the GNU C
Library (glibc).
diff --git a/libgcc/config/rs6000/darwin-asm.h b/libgcc/config/rs6000/darwin-asm.h
index d3fe6d59f1c..f47110b37e6 100644
--- a/libgcc/config/rs6000/darwin-asm.h
+++ b/libgcc/config/rs6000/darwin-asm.h
@@ -1,7 +1,7 @@
/* Macro definitions to used to support 32/64-bit code in Darwin's
* assembly files.
*
- * Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2004-2019 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/rs6000/darwin-crt2.c b/libgcc/config/rs6000/darwin-crt2.c
index 5b82974094a..5a32987a70d 100644
--- a/libgcc/config/rs6000/darwin-crt2.c
+++ b/libgcc/config/rs6000/darwin-crt2.c
@@ -1,5 +1,5 @@
/* KeyMgr backwards-compatibility support for Darwin.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/darwin-fallback.c b/libgcc/config/rs6000/darwin-fallback.c
index 6b4fa5675ea..2968f6a5b57 100644
--- a/libgcc/config/rs6000/darwin-fallback.c
+++ b/libgcc/config/rs6000/darwin-fallback.c
@@ -1,5 +1,5 @@
/* Fallback frame-state unwinder for Darwin.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/darwin-fpsave.S b/libgcc/config/rs6000/darwin-fpsave.S
index d967f1cae6f..a1b73754585 100644
--- a/libgcc/config/rs6000/darwin-fpsave.S
+++ b/libgcc/config/rs6000/darwin-fpsave.S
@@ -1,6 +1,6 @@
/* This file contains the floating-point save and restore routines.
*
- * Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2004-2019 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/rs6000/darwin-gpsave.S b/libgcc/config/rs6000/darwin-gpsave.S
index f7dbb7cc501..c5feff1a973 100644
--- a/libgcc/config/rs6000/darwin-gpsave.S
+++ b/libgcc/config/rs6000/darwin-gpsave.S
@@ -1,6 +1,6 @@
/* This file contains the GPR save and restore routines for Darwin.
*
- * Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2011-2019 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/rs6000/darwin-tramp.S b/libgcc/config/rs6000/darwin-tramp.S
index b1b58617ab3..f41796433d5 100644
--- a/libgcc/config/rs6000/darwin-tramp.S
+++ b/libgcc/config/rs6000/darwin-tramp.S
@@ -1,6 +1,6 @@
/* Special support for trampolines
*
- * Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1996-2019 Free Software Foundation, Inc.
* Written By Michael Meissner
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/darwin-unwind.h b/libgcc/config/rs6000/darwin-unwind.h
index f362a86a464..e5e02935f74 100644
--- a/libgcc/config/rs6000/darwin-unwind.h
+++ b/libgcc/config/rs6000/darwin-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for 32-bit PowerPC Darwin.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/darwin-vecsave.S b/libgcc/config/rs6000/darwin-vecsave.S
index ed384a104fa..df10b6f6ce4 100644
--- a/libgcc/config/rs6000/darwin-vecsave.S
+++ b/libgcc/config/rs6000/darwin-vecsave.S
@@ -1,6 +1,6 @@
/* This file contains the vector save and restore routines.
*
- * Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2004-2019 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -31,8 +31,14 @@
(4 bytes) to do the operation; for Vector regs, 2 instructions are
required (8 bytes.). */
+/* With some assemblers, we need the correct machine directive to get the
+ right CPU type / subtype in the file header. */
+#if __ppc64__
+ .machine ppc64
+#else
.machine ppc7400
-.text
+#endif
+ .text
.align 2
.private_extern saveVEC
diff --git a/libgcc/config/rs6000/darwin-world.S b/libgcc/config/rs6000/darwin-world.S
index 4ccd6e2bae9..cb671c87e37 100644
--- a/libgcc/config/rs6000/darwin-world.S
+++ b/libgcc/config/rs6000/darwin-world.S
@@ -2,7 +2,7 @@
* restore_world routines, which need to do a run-time check to see if
* they should save and restore the vector registers.
*
- * Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2004-2019 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/rs6000/e500crtres32gpr.S b/libgcc/config/rs6000/e500crtres32gpr.S
index 8cc04939a04..c6244bfe593 100644
--- a/libgcc/config/rs6000/e500crtres32gpr.S
+++ b/libgcc/config/rs6000/e500crtres32gpr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/e500crtres64gpr.S b/libgcc/config/rs6000/e500crtres64gpr.S
index 40d8be0036d..42344962ed7 100644
--- a/libgcc/config/rs6000/e500crtres64gpr.S
+++ b/libgcc/config/rs6000/e500crtres64gpr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/e500crtres64gprctr.S b/libgcc/config/rs6000/e500crtres64gprctr.S
index 37938b55f1d..a38ba2c4809 100644
--- a/libgcc/config/rs6000/e500crtres64gprctr.S
+++ b/libgcc/config/rs6000/e500crtres64gprctr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/e500crtrest32gpr.S b/libgcc/config/rs6000/e500crtrest32gpr.S
index 1250085fdf5..1238373f89f 100644
--- a/libgcc/config/rs6000/e500crtrest32gpr.S
+++ b/libgcc/config/rs6000/e500crtrest32gpr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/e500crtrest64gpr.S b/libgcc/config/rs6000/e500crtrest64gpr.S
index 044c1872637..27b11e8871d 100644
--- a/libgcc/config/rs6000/e500crtrest64gpr.S
+++ b/libgcc/config/rs6000/e500crtrest64gpr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/e500crtresx32gpr.S b/libgcc/config/rs6000/e500crtresx32gpr.S
index 66d7252ac03..49566078485 100644
--- a/libgcc/config/rs6000/e500crtresx32gpr.S
+++ b/libgcc/config/rs6000/e500crtresx32gpr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/e500crtresx64gpr.S b/libgcc/config/rs6000/e500crtresx64gpr.S
index b1a3a4f83f8..318b0a51523 100644
--- a/libgcc/config/rs6000/e500crtresx64gpr.S
+++ b/libgcc/config/rs6000/e500crtresx64gpr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/e500crtsav32gpr.S b/libgcc/config/rs6000/e500crtsav32gpr.S
index 8a6d7831fb6..563da7327ad 100644
--- a/libgcc/config/rs6000/e500crtsav32gpr.S
+++ b/libgcc/config/rs6000/e500crtsav32gpr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/e500crtsav64gpr.S b/libgcc/config/rs6000/e500crtsav64gpr.S
index 2d94673c0d9..b768bf5aa4b 100644
--- a/libgcc/config/rs6000/e500crtsav64gpr.S
+++ b/libgcc/config/rs6000/e500crtsav64gpr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/e500crtsav64gprctr.S b/libgcc/config/rs6000/e500crtsav64gprctr.S
index c8c5f7d05c9..bb080a49d84 100644
--- a/libgcc/config/rs6000/e500crtsav64gprctr.S
+++ b/libgcc/config/rs6000/e500crtsav64gprctr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/e500crtsavg32gpr.S b/libgcc/config/rs6000/e500crtsavg32gpr.S
index 3c44369804e..4a301d548f3 100644
--- a/libgcc/config/rs6000/e500crtsavg32gpr.S
+++ b/libgcc/config/rs6000/e500crtsavg32gpr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/e500crtsavg64gpr.S b/libgcc/config/rs6000/e500crtsavg64gpr.S
index 4211650517e..8afc6a9e8b6 100644
--- a/libgcc/config/rs6000/e500crtsavg64gpr.S
+++ b/libgcc/config/rs6000/e500crtsavg64gpr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/e500crtsavg64gprctr.S b/libgcc/config/rs6000/e500crtsavg64gprctr.S
index 383d331219d..ab131ceeded 100644
--- a/libgcc/config/rs6000/e500crtsavg64gprctr.S
+++ b/libgcc/config/rs6000/e500crtsavg64gprctr.S
@@ -1,7 +1,7 @@
/*
* Special support for e500 eabi and SVR4
*
- * Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2019 Free Software Foundation, Inc.
* Written by Nathan Froyd
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/eabi-ci.S b/libgcc/config/rs6000/eabi-ci.S
index 7643029e2c0..0288ee14698 100644
--- a/libgcc/config/rs6000/eabi-ci.S
+++ b/libgcc/config/rs6000/eabi-ci.S
@@ -1,5 +1,5 @@
/* crti.s for eabi
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
Written By Michael Meissner
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/eabi-cn.S b/libgcc/config/rs6000/eabi-cn.S
index 644adc041af..9cc69c975f2 100644
--- a/libgcc/config/rs6000/eabi-cn.S
+++ b/libgcc/config/rs6000/eabi-cn.S
@@ -1,5 +1,5 @@
/* crtn.s for eabi
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
Written By Michael Meissner
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/eabi.S b/libgcc/config/rs6000/eabi.S
index faf82c686d6..45e46c5dbb9 100644
--- a/libgcc/config/rs6000/eabi.S
+++ b/libgcc/config/rs6000/eabi.S
@@ -1,7 +1,7 @@
/*
* Special support for eabi and SVR4
*
- * Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2019 Free Software Foundation, Inc.
* Written By Michael Meissner
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/exit.h b/libgcc/config/rs6000/exit.h
index 6527d595102..3ed4d87cda7 100644
--- a/libgcc/config/rs6000/exit.h
+++ b/libgcc/config/rs6000/exit.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 Free Software Foundation, Inc.
Derived from exit.h in GNU C Library.
diff --git a/libgcc/config/rs6000/extendkftf2-sw.c b/libgcc/config/rs6000/extendkftf2-sw.c
index afaf419734a..a2e783d8a2e 100644
--- a/libgcc/config/rs6000/extendkftf2-sw.c
+++ b/libgcc/config/rs6000/extendkftf2-sw.c
@@ -1,6 +1,6 @@
/* Software IEEE 128-bit floating-point emulation for PowerPC.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Michael Meissner (meissner@linux.vnet.ibm.com)
Code is based on the main soft-fp library written by:
diff --git a/libgcc/config/rs6000/fixkfti.c b/libgcc/config/rs6000/fixkfti.c
index d91a04391ec..4d5d9a7fdae 100644
--- a/libgcc/config/rs6000/fixkfti.c
+++ b/libgcc/config/rs6000/fixkfti.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation, convert IEEE quad to 128bit signed
integer.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Steven Munroe (munroesj@linux.vnet.ibm.com)
Code is based on the main soft-fp library written by:
diff --git a/libgcc/config/rs6000/fixunskfti.c b/libgcc/config/rs6000/fixunskfti.c
index 745ce2c05f6..edc84b62863 100644
--- a/libgcc/config/rs6000/fixunskfti.c
+++ b/libgcc/config/rs6000/fixunskfti.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation, convert IEEE quad to 128bit unsigned
integer.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Steven Munroe (munroesj@linux.vnet.ibm.com)
Code is based on the main soft-fp library written by:
diff --git a/libgcc/config/rs6000/float128-hw.c b/libgcc/config/rs6000/float128-hw.c
index 3e8974df354..96cced985df 100644
--- a/libgcc/config/rs6000/float128-hw.c
+++ b/libgcc/config/rs6000/float128-hw.c
@@ -1,7 +1,7 @@
/* Automatic switching between software and hardware IEEE 128-bit
floating-point emulation for PowerPC.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Michael Meissner (meissner@linux.vnet.ibm.com)
Code is based on the main soft-fp library written by:
diff --git a/libgcc/config/rs6000/float128-ifunc.c b/libgcc/config/rs6000/float128-ifunc.c
index 8fcac242cb4..ca7c9b624d5 100644
--- a/libgcc/config/rs6000/float128-ifunc.c
+++ b/libgcc/config/rs6000/float128-ifunc.c
@@ -1,7 +1,7 @@
/* Automatic switching between software and hardware IEEE 128-bit
floating-point emulation for PowerPC.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Michael Meissner (meissner@linux.vnet.ibm.com)
Code is based on the main soft-fp library written by:
diff --git a/libgcc/config/rs6000/floattikf.c b/libgcc/config/rs6000/floattikf.c
index 4b3655dd354..0f994d5a3dd 100644
--- a/libgcc/config/rs6000/floattikf.c
+++ b/libgcc/config/rs6000/floattikf.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation, convert a 128bit signed integer to IEEE
quad.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Steven Munroe (munroesj@linux.vnet.ibm.com)
Code is based on the main soft-fp library written by:
diff --git a/libgcc/config/rs6000/floatuntikf.c b/libgcc/config/rs6000/floatuntikf.c
index bf02a208cd7..b3cdcac4a0c 100644
--- a/libgcc/config/rs6000/floatuntikf.c
+++ b/libgcc/config/rs6000/floatuntikf.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation, convert a 128bit unsigned integer to IEEE
quad.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Steven Munroe (munroesj@linux.vnet.ibm.com)
Code is based on the main soft-fp library written by:
diff --git a/libgcc/config/rs6000/freebsd-unwind.h b/libgcc/config/rs6000/freebsd-unwind.h
index 48b48a1b231..fdb04c82a5b 100644
--- a/libgcc/config/rs6000/freebsd-unwind.h
+++ b/libgcc/config/rs6000/freebsd-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for PowerPC64 FreeBSD.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/gthr-aix.h b/libgcc/config/rs6000/gthr-aix.h
index cb6e5d3447c..d6a4ebdf0e7 100644
--- a/libgcc/config/rs6000/gthr-aix.h
+++ b/libgcc/config/rs6000/gthr-aix.h
@@ -1,6 +1,6 @@
/* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/ibm-ldouble-format b/libgcc/config/rs6000/ibm-ldouble-format
index c55313225d2..6ed5cfb1be6 100644
--- a/libgcc/config/rs6000/ibm-ldouble-format
+++ b/libgcc/config/rs6000/ibm-ldouble-format
@@ -84,7 +84,7 @@ Division is also performed using a library routine. Its result will
be within 3ulp of the correct result.
-Copyright (C) 2004-2018 Free Software Foundation, Inc.
+Copyright (C) 2004-2019 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/libgcc/config/rs6000/ibm-ldouble.c b/libgcc/config/rs6000/ibm-ldouble.c
index 9b9e94c0e8f..0e1c443af01 100644
--- a/libgcc/config/rs6000/ibm-ldouble.c
+++ b/libgcc/config/rs6000/ibm-ldouble.c
@@ -1,5 +1,5 @@
/* 128-bit long double support routines for Darwin.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -46,7 +46,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
the lower numbered register or lower addressed memory. */
#if (defined (__MACH__) || defined (__powerpc__) || defined (_AIX)) \
- && !defined (__rtems__)
+ && !defined (__rtems__) \
+ && (defined (__LONG_DOUBLE_128__) || defined (__FLOAT128_TYPE__))
#define fabs(x) __builtin_fabs(x)
#define isless(x, y) __builtin_isless (x, y)
@@ -406,7 +407,7 @@ fmsub (double a, double b, double c)
FP_UNPACK_RAW_D (C, c);
/* Extend double to quad. */
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND(Q,D,4,2,X,A);
FP_EXTEND(Q,D,4,2,Y,B);
FP_EXTEND(Q,D,4,2,Z,C);
@@ -435,7 +436,7 @@ fmsub (double a, double b, double c)
FP_SUB_Q(V,U,Z);
/* Truncate quad to double. */
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
V_f[3] &= 0x0007ffff;
FP_TRUNC(D,Q,2,4,R,V);
#else
diff --git a/libgcc/config/rs6000/libgcc-darwin.10.4.ver b/libgcc/config/rs6000/libgcc-darwin.10.4.ver
index 5aca55f872c..e9beb8fe306 100644
--- a/libgcc/config/rs6000/libgcc-darwin.10.4.ver
+++ b/libgcc/config/rs6000/libgcc-darwin.10.4.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/rs6000/libgcc-darwin.10.5.ver b/libgcc/config/rs6000/libgcc-darwin.10.5.ver
index ed4cd2d59d0..730d0205ab2 100644
--- a/libgcc/config/rs6000/libgcc-darwin.10.5.ver
+++ b/libgcc/config/rs6000/libgcc-darwin.10.5.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/rs6000/libgcc-glibc.ver b/libgcc/config/rs6000/libgcc-glibc.ver
index 1a779e59b39..c7f80cbdefe 100644
--- a/libgcc/config/rs6000/libgcc-glibc.ver
+++ b/libgcc/config/rs6000/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
+# Copyright (C) 2006-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/rs6000/linux-unwind.h b/libgcc/config/rs6000/linux-unwind.h
index f12e9516a3f..9fdea697d7c 100644
--- a/libgcc/config/rs6000/linux-unwind.h
+++ b/libgcc/config/rs6000/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for PowerPC and PowerPC64 Linux.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/morestack.S b/libgcc/config/rs6000/morestack.S
index a0fee4037e4..8073cbdc05f 100644
--- a/libgcc/config/rs6000/morestack.S
+++ b/libgcc/config/rs6000/morestack.S
@@ -1,6 +1,6 @@
#ifdef __powerpc64__
# PowerPC64 support for -fsplit-stack.
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
# Contributed by Alan Modra <amodra@gmail.com>.
# This file is part of GCC.
@@ -304,12 +304,15 @@ DW.ref.__gcc_personality_v0:
# new thread starts. This is called from a constructor.
# void __stack_split_initialize (void)
ENTRY(__stack_split_initialize)
+ .cfi_startproc
addi %r3,%r1,-0x4000 # We should have at least 16K.
std %r3,-0x7000-64(%r13) # tcbhead_t.__private_ss
# void __generic_morestack_set_initial_sp (void *sp, size_t len)
mr %r3,%r1
li %r4, 0x4000
b __generic_morestack_set_initial_sp
+# The lack of .cfi_endproc here is deliberate. This function and the
+# following ones can all use the default FDE.
SIZE (__stack_split_initialize)
@@ -335,6 +338,7 @@ ENTRY0(__morestack_make_guard)
sub %r3,%r3,%r4
addi %r3,%r3,BACKOFF
blr
+ .cfi_endproc
SIZE (__morestack_make_guard)
diff --git a/libgcc/config/rs6000/on_exit.c b/libgcc/config/rs6000/on_exit.c
index 27c113686be..9c8e79ff84c 100644
--- a/libgcc/config/rs6000/on_exit.c
+++ b/libgcc/config/rs6000/on_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
NOTE: This source is derived from an old version taken from the GNU C
Library (glibc).
diff --git a/libgcc/config/rs6000/ppc64-fp.c b/libgcc/config/rs6000/ppc64-fp.c
index faffc82eeda..5519a136573 100644
--- a/libgcc/config/rs6000/ppc64-fp.c
+++ b/libgcc/config/rs6000/ppc64-fp.c
@@ -1,7 +1,7 @@
/* Functions needed for soft-float on powerpc64-linux, copied from
libgcc2.c with macros expanded to force the use of specific types.
- Copyright (C) 1989-2018 Free Software Foundation, Inc.
+ Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/quad-float128.h b/libgcc/config/rs6000/quad-float128.h
index 1d4d5130470..8c7b8a2e5e1 100644
--- a/libgcc/config/rs6000/quad-float128.h
+++ b/libgcc/config/rs6000/quad-float128.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Quad Precision on the PowerPC.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Michael Meissner (meissner@linux.vnet.ibm.com).
diff --git a/libgcc/config/rs6000/sfp-exceptions.c b/libgcc/config/rs6000/sfp-exceptions.c
index da7096119bb..304465a9593 100644
--- a/libgcc/config/rs6000/sfp-exceptions.c
+++ b/libgcc/config/rs6000/sfp-exceptions.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/rs6000/sol-ci.S b/libgcc/config/rs6000/sol-ci.S
index e1044311b5d..f68ee409f48 100644
--- a/libgcc/config/rs6000/sol-ci.S
+++ b/libgcc/config/rs6000/sol-ci.S
@@ -1,6 +1,6 @@
# crti.s for sysv4
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2019 Free Software Foundation, Inc.
# Written By Michael Meissner
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/sol-cn.S b/libgcc/config/rs6000/sol-cn.S
index 3b319446571..2737a923e77 100644
--- a/libgcc/config/rs6000/sol-cn.S
+++ b/libgcc/config/rs6000/sol-cn.S
@@ -1,6 +1,6 @@
# crtn.s for sysv4
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2019 Free Software Foundation, Inc.
# Written By Michael Meissner
#
# This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/rs6000/t-darwin b/libgcc/config/rs6000/t-darwin
index abb41fc9bce..8b513bdb1d7 100644
--- a/libgcc/config/rs6000/t-darwin
+++ b/libgcc/config/rs6000/t-darwin
@@ -1,23 +1,58 @@
-DARWIN_EXTRA_CRT_BUILD_CFLAGS = -mlongcall -mmacosx-version-min=10.4
crt2.o: $(srcdir)/config/rs6000/darwin-crt2.c
- $(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -c $<
+ $(crt_compile) -mmacosx-version-min=10.1 -c $<
+
+# The sources for this indicate that there are some parts that
+# don't apply >= 10.4
+crt3_2.o: $(srcdir)/config/darwin-crt3.c
+ $(crt_compile) -mmacosx-version-min=10.1 -c $<
+
+# The outlined register save/restore functions need to run anywhere, and
+# they must be leaf functions suitable for use in an endfile.
+
+PPC_ENDFILE_SRC = \
+ $(srcdir)/config/rs6000/darwin-gpsave.S \
+ $(srcdir)/config/rs6000/darwin-fpsave.S \
+ $(srcdir)/config/rs6000/darwin-vecsave.S
+
+PPC_ENDFILE_OBJS = \
+ darwin-gpsave.o \
+ darwin-fpsave.o \
+ darwin-vecsave.o
+
+darwin-gpsave.o: $(srcdir)/config/rs6000/darwin-gpsave.S
+ $(crt_compile) -mmacosx-version-min=10.1 -c $<
+
+darwin-fpsave.o: $(srcdir)/config/rs6000/darwin-fpsave.S
+ $(crt_compile) -mmacosx-version-min=10.1 -c $<
+
+darwin-vecsave.o: $(srcdir)/config/rs6000/darwin-vecsave.S
+ $(crt_compile) -mmacosx-version-min=10.1 -c $<
+
+# We build these into a library, so that they are only linked as needed and not
+# forced into every object.
+
+libef_ppc.a: $(PPC_ENDFILE_OBJS)
+ $(AR_CREATE_FOR_TARGET) $@ $(PPC_ENDFILE_OBJS)
+ $(RANLIB_FOR_TARGET) $@
+
+dw_ppc.o: $(srcdir)/config/rs6000/darwin-world.S
+ $(crt_compile) -mmacosx-version-min=10.1 -c $<
LIB2ADD = $(srcdir)/config/rs6000/darwin-tramp.S \
$(srcdir)/config/darwin-64.c \
- $(srcdir)/config/rs6000/darwin-fpsave.S \
- $(srcdir)/config/rs6000/darwin-gpsave.S \
- $(srcdir)/config/rs6000/darwin-world.S \
- $(srcdir)/config/rs6000/ppc64-fp.c
-
-LIB2ADD_ST = \
- $(srcdir)/config/rs6000/darwin-vecsave.S
+ $(srcdir)/config/rs6000/darwin-world.S
# The .S files above are designed to run on all processors, even though
# they use AltiVec instructions.
# -Wa is used because -force_cpusubtype_ALL doesn't work with -dynamiclib.
-# -mmacosx-version-min=10.4 is used to provide compatibility for code from
-# earlier OSX versions.
-HOST_LIBGCC2_CFLAGS += -Wa,-force_cpusubtype_ALL -mmacosx-version-min=10.4
+
+HOST_LIBGCC2_CFLAGS += -Wa,-force_cpusubtype_ALL
+
+# Although the default for 10.4 is G3, we need the unwinder to be built
+# with vector support so that the "save/rest_world" outlined functions are
+# correctly invoked.
+unwind-dw2_s.o: HOST_LIBGCC2_CFLAGS += -maltivec
+unwind-dw2.o: HOST_LIBGCC2_CFLAGS += -maltivec
LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c
diff --git a/libgcc/config/rs6000/t-darwin64 b/libgcc/config/rs6000/t-darwin64
index 50f09d6de1a..999679fc3cb 100644
--- a/libgcc/config/rs6000/t-darwin64
+++ b/libgcc/config/rs6000/t-darwin64
@@ -1,7 +1 @@
LIB2_SIDITI_CONV_FUNCS = yes
-
-LIB2ADD = $(srcdir)/config/rs6000/darwin-tramp.S \
- $(srcdir)/config/darwin-64.c \
- $(srcdir)/config/rs6000/darwin-fpsave.S \
- $(srcdir)/config/rs6000/darwin-gpsave.S \
- $(srcdir)/config/rs6000/darwin-world.S
diff --git a/libgcc/config/rs6000/t-e500v1-fp b/libgcc/config/rs6000/t-e500v1-fp
index ff88acaa8e7..dbc40b5b3b0 100644
--- a/libgcc/config/rs6000/t-e500v1-fp
+++ b/libgcc/config/rs6000/t-e500v1-fp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-2019 Free Software Foundation, Inc.
# This file is part of GCC.
diff --git a/libgcc/config/rs6000/t-e500v2-fp b/libgcc/config/rs6000/t-e500v2-fp
index 4c3883c0708..4164a5d985e 100644
--- a/libgcc/config/rs6000/t-e500v2-fp
+++ b/libgcc/config/rs6000/t-e500v2-fp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-2019 Free Software Foundation, Inc.
# This file is part of GCC.
diff --git a/libgcc/config/rs6000/t-freebsd b/libgcc/config/rs6000/t-freebsd
index af143eb24b0..dfbb49d9248 100644
--- a/libgcc/config/rs6000/t-freebsd
+++ b/libgcc/config/rs6000/t-freebsd
@@ -1,6 +1,6 @@
# Overrides for FreeBSD PowerPC
#
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/rs6000/t-slibgcc-aix b/libgcc/config/rs6000/t-slibgcc-aix
index c6b6a3cedb6..d223424254b 100644
--- a/libgcc/config/rs6000/t-slibgcc-aix
+++ b/libgcc/config/rs6000/t-slibgcc-aix
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/rs6000/tramp.S b/libgcc/config/rs6000/tramp.S
index 19ea57838fc..3fff9621d7d 100644
--- a/libgcc/config/rs6000/tramp.S
+++ b/libgcc/config/rs6000/tramp.S
@@ -1,6 +1,6 @@
/* Special support for trampolines
*
- * Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1996-2019 Free Software Foundation, Inc.
* Written By Michael Meissner
*
* This file is free software; you can redistribute it and/or modify it
@@ -56,8 +56,10 @@ trampoline_size = .-trampoline_initial
/* R6 = static chain */
FUNC_START(__trampoline_setup)
+ .cfi_startproc
mflr r0 /* save return address */
bcl 20,31,.LCF0 /* load up __trampoline_initial into r7 */
+ .cfi_register lr,r0
.LCF0:
mflr r11
addi r7,r11,trampoline_initial-4-.LCF0 /* trampoline address -4 */
@@ -112,9 +114,9 @@ FUNC_START(__trampoline_setup)
addi r30,r30,_GLOBAL_OFFSET_TABLE_-1b@l
#endif
bl JUMP_TARGET(abort)
-FUNC_END(__trampoline_setup)
-
#endif
+ .cfi_endproc
+FUNC_END(__trampoline_setup)
#elif _CALL_ELF == 2
.type trampoline_initial,@object
@@ -144,6 +146,7 @@ trampoline_size = .-trampoline_initial
.popsection
FUNC_START(__trampoline_setup)
+ .cfi_startproc
addis 7,2,.LC0@toc@ha
ld 7,.LC0@toc@l(7) /* trampoline address -8 */
@@ -180,6 +183,7 @@ FUNC_START(__trampoline_setup)
.Labort:
bl JUMP_TARGET(abort)
nop
+ .cfi_endproc
FUNC_END(__trampoline_setup)
#endif
diff --git a/libgcc/config/rs6000/trunctfkf2-sw.c b/libgcc/config/rs6000/trunctfkf2-sw.c
index cb716c5f4c8..15a9a75b675 100644
--- a/libgcc/config/rs6000/trunctfkf2-sw.c
+++ b/libgcc/config/rs6000/trunctfkf2-sw.c
@@ -1,6 +1,6 @@
/* Software IEEE 128-bit floating-point emulation for PowerPC.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Michael Meissner (meissner@linux.vnet.ibm.com)
Code is based on the main soft-fp library written by:
diff --git a/libgcc/config/rx/rx-abi-functions.c b/libgcc/config/rx/rx-abi-functions.c
index 763d5e3064e..c91a5ce1f33 100644
--- a/libgcc/config/rx/rx-abi-functions.c
+++ b/libgcc/config/rx/rx-abi-functions.c
@@ -1,5 +1,5 @@
/* RX C ABI functions
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/rx/rx-abi.h b/libgcc/config/rx/rx-abi.h
index f79300f299a..3dae4e0d9c3 100644
--- a/libgcc/config/rx/rx-abi.h
+++ b/libgcc/config/rx/rx-abi.h
@@ -1,5 +1,5 @@
/* Header file for RX ABI versions of libgcc functions.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/rx/t-rx b/libgcc/config/rx/t-rx
index 98fae9917d1..ace3b16f39e 100644
--- a/libgcc/config/rx/t-rx
+++ b/libgcc/config/rx/t-rx
@@ -1,5 +1,5 @@
# Makefile fragment for building LIBGCC for the Renesas RX target.
-# Copyright (C) 2008-2018 Free Software Foundation, Inc.
+# Copyright (C) 2008-2019 Free Software Foundation, Inc.
# Contributed by Red Hat.
#
# This file is part of GCC.
diff --git a/libgcc/config/s390/32/_fixdfdi.c b/libgcc/config/s390/32/_fixdfdi.c
index ab1c4eed96b..28cfe3422de 100644
--- a/libgcc/config/s390/32/_fixdfdi.c
+++ b/libgcc/config/s390/32/_fixdfdi.c
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for IBM S/390
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Hartmut Penner (hpenner@de.ibm.com) and
Ulrich Weigand (uweigand@de.ibm.com).
diff --git a/libgcc/config/s390/32/_fixsfdi.c b/libgcc/config/s390/32/_fixsfdi.c
index 6971702d15e..0a069f7281d 100644
--- a/libgcc/config/s390/32/_fixsfdi.c
+++ b/libgcc/config/s390/32/_fixsfdi.c
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for IBM S/390
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Hartmut Penner (hpenner@de.ibm.com) and
Ulrich Weigand (uweigand@de.ibm.com).
diff --git a/libgcc/config/s390/32/_fixtfdi.c b/libgcc/config/s390/32/_fixtfdi.c
index 28305d5cfe0..05eb28e18b1 100644
--- a/libgcc/config/s390/32/_fixtfdi.c
+++ b/libgcc/config/s390/32/_fixtfdi.c
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for IBM S/390
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Hartmut Penner (hpenner@de.ibm.com) and
Ulrich Weigand (uweigand@de.ibm.com).
diff --git a/libgcc/config/s390/32/_fixunsdfdi.c b/libgcc/config/s390/32/_fixunsdfdi.c
index 40f1fe8ad50..5da53b64ffd 100644
--- a/libgcc/config/s390/32/_fixunsdfdi.c
+++ b/libgcc/config/s390/32/_fixunsdfdi.c
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for IBM S/390
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Hartmut Penner (hpenner@de.ibm.com) and
Ulrich Weigand (uweigand@de.ibm.com).
diff --git a/libgcc/config/s390/32/_fixunssfdi.c b/libgcc/config/s390/32/_fixunssfdi.c
index ca69b80e752..4ee4e10c741 100644
--- a/libgcc/config/s390/32/_fixunssfdi.c
+++ b/libgcc/config/s390/32/_fixunssfdi.c
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for IBM S/390
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Hartmut Penner (hpenner@de.ibm.com) and
Ulrich Weigand (uweigand@de.ibm.com).
diff --git a/libgcc/config/s390/32/_fixunstfdi.c b/libgcc/config/s390/32/_fixunstfdi.c
index b0ec6327094..7e641bdef84 100644
--- a/libgcc/config/s390/32/_fixunstfdi.c
+++ b/libgcc/config/s390/32/_fixunstfdi.c
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for IBM S/390
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Hartmut Penner (hpenner@de.ibm.com) and
Ulrich Weigand (uweigand@de.ibm.com).
diff --git a/libgcc/config/s390/gthr-tpf.h b/libgcc/config/s390/gthr-tpf.h
index 91788048564..5bc06df2d02 100644
--- a/libgcc/config/s390/gthr-tpf.h
+++ b/libgcc/config/s390/gthr-tpf.h
@@ -1,6 +1,6 @@
/* Threads compatibility routines for libgcc2 and libobjc.
Compile this one with gcc.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/s390/libgcc-glibc.ver b/libgcc/config/s390/libgcc-glibc.ver
index 681e67d225b..4d44042b079 100644
--- a/libgcc/config/s390/libgcc-glibc.ver
+++ b/libgcc/config/s390/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/s390/linux-unwind.h b/libgcc/config/s390/linux-unwind.h
index 3554a42e165..023512f9c8f 100644
--- a/libgcc/config/s390/linux-unwind.h
+++ b/libgcc/config/s390/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for S/390 Linux.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/s390/morestack.S b/libgcc/config/s390/morestack.S
index 510d7a0c88c..2937a40f0ca 100644
--- a/libgcc/config/s390/morestack.S
+++ b/libgcc/config/s390/morestack.S
@@ -1,5 +1,5 @@
# s390 support for -fsplit-stack.
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-2019 Free Software Foundation, Inc.
# Contributed by Marcin Kościelnicki <koriakin@0x04.net>.
# This file is part of GCC.
diff --git a/libgcc/config/s390/tpf-unwind.h b/libgcc/config/s390/tpf-unwind.h
index 0af4e44bd11..293de57e296 100644
--- a/libgcc/config/s390/tpf-unwind.h
+++ b/libgcc/config/s390/tpf-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for TPF OS.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
Contributed by P.J. Darcy (darcypj@us.ibm.com).
This file is part of GCC.
diff --git a/libgcc/config/score/crti.S b/libgcc/config/score/crti.S
index 1cf832e1d3e..ed5f034757e 100644
--- a/libgcc/config/score/crti.S
+++ b/libgcc/config/score/crti.S
@@ -1,6 +1,6 @@
# crti.S for Sunplus S+CORE
#
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/score/crtn.S b/libgcc/config/score/crtn.S
index eca11aa65b4..f2213b215ce 100644
--- a/libgcc/config/score/crtn.S
+++ b/libgcc/config/score/crtn.S
@@ -1,6 +1,6 @@
# crtn.S for Sunplus S+CORE
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/sh/crt.h b/libgcc/config/sh/crt.h
index 8f3f1aa0b34..acdb59c27b9 100644
--- a/libgcc/config/sh/crt.h
+++ b/libgcc/config/sh/crt.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/sh/crt1.S b/libgcc/config/sh/crt1.S
index e623d06d5ed..54c953544f8 100644
--- a/libgcc/config/sh/crt1.S
+++ b/libgcc/config/sh/crt1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file was pretty much copied from newlib.
This file is part of GCC.
diff --git a/libgcc/config/sh/crti.S b/libgcc/config/sh/crti.S
index 72c6203acb7..b567088ecd2 100644
--- a/libgcc/config/sh/crti.S
+++ b/libgcc/config/sh/crti.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file was adapted from glibc sources.
This file is part of GCC.
diff --git a/libgcc/config/sh/crtn.S b/libgcc/config/sh/crtn.S
index 3a0548860e3..46d65620d07 100644
--- a/libgcc/config/sh/crtn.S
+++ b/libgcc/config/sh/crtn.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file was adapted from glibc sources.
This file is part of GCC.
diff --git a/libgcc/config/sh/lib1funcs-4-300.S b/libgcc/config/sh/lib1funcs-4-300.S
index bfaafe69017..71447710c4d 100644
--- a/libgcc/config/sh/lib1funcs-4-300.S
+++ b/libgcc/config/sh/lib1funcs-4-300.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/sh/lib1funcs-Os-4-200.S b/libgcc/config/sh/lib1funcs-Os-4-200.S
index 63083ab1134..16140b7a009 100644
--- a/libgcc/config/sh/lib1funcs-Os-4-200.S
+++ b/libgcc/config/sh/lib1funcs-Os-4-200.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/sh/lib1funcs.S b/libgcc/config/sh/lib1funcs.S
index b789b552359..df846bf7251 100644
--- a/libgcc/config/sh/lib1funcs.S
+++ b/libgcc/config/sh/lib1funcs.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/sh/lib1funcs.h b/libgcc/config/sh/lib1funcs.h
index 2578c469668..889d3cd0de8 100644
--- a/libgcc/config/sh/lib1funcs.h
+++ b/libgcc/config/sh/lib1funcs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/libgcc/config/sh/libgcc-glibc.ver b/libgcc/config/sh/libgcc-glibc.ver
index dbff03d2a60..1ec9e2f0ad3 100644
--- a/libgcc/config/sh/libgcc-glibc.ver
+++ b/libgcc/config/sh/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/sh/linux-atomic.c b/libgcc/config/sh/linux-atomic.c
index 030bfa20e02..d4681e90a34 100644
--- a/libgcc/config/sh/linux-atomic.c
+++ b/libgcc/config/sh/linux-atomic.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/sh/linux-unwind.h b/libgcc/config/sh/linux-unwind.h
index b88a67b6b08..da2aa930b61 100644
--- a/libgcc/config/sh/linux-unwind.h
+++ b/libgcc/config/sh/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for SH Linux.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/sh/t-sh b/libgcc/config/sh/t-sh
index 2c15e64e781..3200eb84839 100644
--- a/libgcc/config/sh/t-sh
+++ b/libgcc/config/sh/t-sh
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2018 Free Software Foundation, Inc.
+# Copyright (C) 1993-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/sol2/crtp.c b/libgcc/config/sol2/crtp.c
index 8aa8681df37..867705a4db0 100644
--- a/libgcc/config/sol2/crtp.c
+++ b/libgcc/config/sol2/crtp.c
@@ -1,5 +1,5 @@
/* Dummy _mcount when mixing profiling and non-profiling objects.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/sol2/crtpg.c b/libgcc/config/sol2/crtpg.c
index d1f68c8ada5..68c1293348c 100644
--- a/libgcc/config/sol2/crtpg.c
+++ b/libgcc/config/sol2/crtpg.c
@@ -1,5 +1,5 @@
/* Register profiling startup and cleanup with Solaris CRTs.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/sol2/t-sol2 b/libgcc/config/sol2/t-sol2
index c91f81575e3..541b2665377 100644
--- a/libgcc/config/sol2/t-sol2
+++ b/libgcc/config/sol2/t-sol2
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/sparc/crtfastmath.c b/libgcc/config/sparc/crtfastmath.c
index 8d0351f6db7..e6ce803954e 100644
--- a/libgcc/config/sparc/crtfastmath.c
+++ b/libgcc/config/sparc/crtfastmath.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 Free Software Foundation, Inc.
* Contributed by David S. Miller (davem@redhat.com)
*
* This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/sparc/crti.S b/libgcc/config/sparc/crti.S
index 4e9ccd64353..f2799e6a462 100644
--- a/libgcc/config/sparc/crti.S
+++ b/libgcc/config/sparc/crti.S
@@ -1,6 +1,6 @@
! crti.S for SPARC
-! Copyright (C) 1992-2018 Free Software Foundation, Inc.
+! Copyright (C) 1992-2019 Free Software Foundation, Inc.
! Written By David Vinayak Henkel-Wallace, June 1992
!
! This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/sparc/crtn.S b/libgcc/config/sparc/crtn.S
index 7d71d200891..7b129a85815 100644
--- a/libgcc/config/sparc/crtn.S
+++ b/libgcc/config/sparc/crtn.S
@@ -1,6 +1,6 @@
! crtn.S for SPARC
-! Copyright (C) 1992-2018 Free Software Foundation, Inc.
+! Copyright (C) 1992-2019 Free Software Foundation, Inc.
! Written By David Vinayak Henkel-Wallace, June 1992
!
! This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/sparc/libgcc-glibc.ver b/libgcc/config/sparc/libgcc-glibc.ver
index b40920f7033..4ab609ecf91 100644
--- a/libgcc/config/sparc/libgcc-glibc.ver
+++ b/libgcc/config/sparc/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/sparc/linux-unwind.h b/libgcc/config/sparc/linux-unwind.h
index 740d27524e8..6b4271d84b6 100644
--- a/libgcc/config/sparc/linux-unwind.h
+++ b/libgcc/config/sparc/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for SPARC Linux.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/sparc/sol2-c1.S b/libgcc/config/sparc/sol2-c1.S
index f49239977fe..8ed7fa9f800 100644
--- a/libgcc/config/sparc/sol2-c1.S
+++ b/libgcc/config/sparc/sol2-c1.S
@@ -1,6 +1,6 @@
! crt1.s for sparc & sparcv9 (SunOS 5)
-! Copyright (C) 1992-2018 Free Software Foundation, Inc.
+! Copyright (C) 1992-2019 Free Software Foundation, Inc.
! Written By David Vinayak Henkel-Wallace, June 1992
!
! This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/sparc/sol2-unwind.h b/libgcc/config/sparc/sol2-unwind.h
index 5ff1d6f46b6..f32cc551b88 100644
--- a/libgcc/config/sparc/sol2-unwind.h
+++ b/libgcc/config/sparc/sol2-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for SPARC Solaris.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -67,51 +67,7 @@ sparc64_is_sighandler (unsigned int *pc, void *cfa, int *nframes)
libc.so.1:
<call_user_handler+864>: mov %i1, %o1
- <call_user_handler+868>: call __sighndlr
-
- This is the same setup as for Solaris 10, see below. */
- *nframes = 3;
-
- else if (cuh_pattern == 0xd25fa7ef)
- {
- /* This matches the call_user_handler pattern in Solaris 10
- libc.so.1:
-
- <call_user_handler+988>: ldx [ %fp + 0x7ef ], %o1
- <call_user_handler+992>: call __sighndlr
-
- There are 2 cases so we look for the return address of the
- caller's caller frame in order to do more pattern matching. */
- unsigned long sah_address = *(unsigned long *)(cfa + 176 + 15*8);
-
- if (sah_address && *(unsigned int *)(sah_address - 4) == 0x92100019)
- /* We need to move up three frames:
-
- <signal handler> <-- context->cfa
- __sighndlr
- call_user_handler
- sigacthandler
- <kernel> */
- *nframes = 3;
- else
- /* The sigacthandler frame isn't present in the chain.
- We need to move up two frames:
-
- <signal handler> <-- context->cfa
- __sighndlr
- call_user_handler
- <kernel> */
- *nframes = 2;
- }
-
- else if (cuh_pattern == 0x9410001a || cuh_pattern == 0x9410001b)
- /* This matches the call_user_handler pattern in Solaris 9
- libthread.so.1:
-
- <call_user_handler+600>: mov %i2, %o2
- <call_user_handler+604>: call __sighndlr
-
- This is the same setup as for Solaris 10, see above. */
+ <call_user_handler+868>: call __sighndlr */
*nframes = 3;
return 1;
@@ -184,51 +140,7 @@ sparc_is_sighandler (unsigned int *pc, void *cfa, int *nframes)
libc.so.1:
<call_user_handler+876>: mov %i1, %o1
- <call_user_handler+880>: call __sighndlr
-
- This is the same setup as for Solaris 10, see below. */
- *nframes = 3;
-
- else if (cuh_pattern == 0xd407a04c)
- {
- /* This matches the call_user_handler pattern in Solaris 10
- libc.so.1:
-
- <call_user_handler+948>: ld [ %fp + 0x4c ], %o2
- <call_user_handler+952>: call __sighndlr
-
- There are 2 cases so we look for the return address of the
- caller's caller frame in order to do more pattern matching. */
- unsigned int sah_address = *(unsigned int *)(cfa + 96 + 15*4);
-
- if (sah_address && *(unsigned int *)(sah_address - 4) == 0x92100019)
- /* We need to move up three frames:
-
- <signal handler> <-- context->cfa
- __sighndlr
- call_user_handler
- sigacthandler
- <kernel> */
- *nframes = 3;
- else
- /* The sigacthandler frame isn't present in the chain.
- We need to move up two frames:
-
- <signal handler> <-- context->cfa
- __sighndlr
- call_user_handler
- <kernel> */
- *nframes = 2;
- }
-
- else if (cuh_pattern == 0x9410001a || cuh_pattern == 0x9410001b)
- /* This matches the call_user_handler pattern in Solaris 9
- libthread.so.1:
-
- <call_user_handler+560>: mov %i2, %o2
- <call_user_handler+564>: call __sighndlr
-
- This is the same setup as for Solaris 10, see above. */
+ <call_user_handler+880>: call __sighndlr */
*nframes = 3;
return 1;
diff --git a/libgcc/config/spu/cachemgr.c b/libgcc/config/spu/cachemgr.c
deleted file mode 100644
index 043ee588eb9..00000000000
--- a/libgcc/config/spu/cachemgr.c
+++ /dev/null
@@ -1,438 +0,0 @@
-/* Copyright (C) 2008-2018 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/>. */
-
-#include <spu_mfcio.h>
-#include <spu_internals.h>
-#include <spu_intrinsics.h>
-#include <spu_cache.h>
-
-extern unsigned long long __ea_local_store;
-extern char __cache_tag_array_size;
-
-#define LINE_SIZE 128
-#define TAG_MASK (LINE_SIZE - 1)
-
-#define WAYS 4
-#define SET_MASK ((int) &__cache_tag_array_size - LINE_SIZE)
-
-#define CACHE_LINES ((int) &__cache_tag_array_size / \
- sizeof (struct __cache_tag_array) * WAYS)
-
-struct __cache_tag_array
-{
- unsigned int tag_lo[WAYS];
- unsigned int tag_hi[WAYS];
- void *base[WAYS];
- int reserved[WAYS];
- vector unsigned short dirty_bits[WAYS];
-};
-
-extern struct __cache_tag_array __cache_tag_array[];
-extern char __cache[];
-
-/* In order to make the code seem a little cleaner, and to avoid having
- 64/32 bit ifdefs all over the place, we use macros. */
-
-#ifdef __EA64__
-typedef unsigned long long addr;
-
-#define CHECK_TAG(_entry, _way, _tag) \
- ((_entry)->tag_lo[(_way)] == ((_tag) & 0xFFFFFFFF) \
- && (_entry)->tag_hi[(_way)] == ((_tag) >> 32))
-
-#define GET_TAG(_entry, _way) \
- ((unsigned long long)(_entry)->tag_hi[(_way)] << 32 \
- | (unsigned long long)(_entry)->tag_lo[(_way)])
-
-#define SET_TAG(_entry, _way, _tag) \
- (_entry)->tag_lo[(_way)] = (_tag) & 0xFFFFFFFF; \
- (_entry)->tag_hi[(_way)] = (_tag) >> 32
-
-#else /*__EA32__*/
-typedef unsigned long addr;
-
-#define CHECK_TAG(_entry, _way, _tag) \
- ((_entry)->tag_lo[(_way)] == (_tag))
-
-#define GET_TAG(_entry, _way) \
- ((_entry)->tag_lo[(_way)])
-
-#define SET_TAG(_entry, _way, _tag) \
- (_entry)->tag_lo[(_way)] = (_tag)
-
-#endif
-
-/* In GET_ENTRY, we cast away the high 32 bits,
- as the tag is only in the low 32. */
-
-#define GET_ENTRY(_addr) \
- ((struct __cache_tag_array *) \
- si_to_uint (si_a (si_and (si_from_uint ((unsigned int) (addr) (_addr)), \
- si_from_uint (SET_MASK)), \
- si_from_uint ((unsigned int) __cache_tag_array))))
-
-#define GET_CACHE_LINE(_addr, _way) \
- ((void *) (__cache + ((_addr) & SET_MASK) * WAYS) + ((_way) * LINE_SIZE));
-
-#define CHECK_DIRTY(_vec) (si_to_uint (si_orx ((qword) (_vec))))
-#define SET_EMPTY(_entry, _way) ((_entry)->tag_lo[(_way)] = 1)
-#define CHECK_EMPTY(_entry, _way) ((_entry)->tag_lo[(_way)] == 1)
-
-#define LS_FLAG 0x80000000
-#define SET_IS_LS(_entry, _way) ((_entry)->reserved[(_way)] |= LS_FLAG)
-#define CHECK_IS_LS(_entry, _way) ((_entry)->reserved[(_way)] & LS_FLAG)
-#define GET_LRU(_entry, _way) ((_entry)->reserved[(_way)] & ~LS_FLAG)
-
-static int dma_tag = 32;
-
-static void
-__cache_evict_entry (struct __cache_tag_array *entry, int way)
-{
- addr tag = GET_TAG (entry, way);
-
- if (CHECK_DIRTY (entry->dirty_bits[way]) && !CHECK_IS_LS (entry, way))
- {
-#ifdef NONATOMIC
- /* Non-atomic writes. */
- unsigned int oldmask, mach_stat;
- char *line = ((void *) 0);
-
- /* Enter critical section. */
- mach_stat = spu_readch (SPU_RdMachStat);
- spu_idisable ();
-
- /* Issue DMA request. */
- line = GET_CACHE_LINE (entry->tag_lo[way], way);
- mfc_put (line, tag, LINE_SIZE, dma_tag, 0, 0);
-
- /* Wait for DMA completion. */
- oldmask = mfc_read_tag_mask ();
- mfc_write_tag_mask (1 << dma_tag);
- mfc_read_tag_status_all ();
- mfc_write_tag_mask (oldmask);
-
- /* Leave critical section. */
- if (__builtin_expect (mach_stat & 1, 0))
- spu_ienable ();
-#else
- /* Allocate a buffer large enough that we know it has 128 bytes
- that are 128 byte aligned (for DMA). */
-
- char buffer[LINE_SIZE + 127];
- qword *buf_ptr = (qword *) (((unsigned int) (buffer) + 127) & ~127);
- qword *line = GET_CACHE_LINE (entry->tag_lo[way], way);
- qword bits;
- unsigned int mach_stat;
-
- /* Enter critical section. */
- mach_stat = spu_readch (SPU_RdMachStat);
- spu_idisable ();
-
- do
- {
- /* We atomically read the current memory into a buffer
- modify the dirty bytes in the buffer, and write it
- back. If writeback fails, loop and try again. */
-
- mfc_getllar (buf_ptr, tag, 0, 0);
- mfc_read_atomic_status ();
-
- /* The method we're using to write 16 dirty bytes into
- the buffer at a time uses fsmb which in turn uses
- the least significant 16 bits of word 0, so we
- load the bits and rotate so that the first bit of
- the bitmap is in the first bit that fsmb will use. */
-
- bits = (qword) entry->dirty_bits[way];
- bits = si_rotqbyi (bits, -2);
-
- /* Si_fsmb creates the mask of dirty bytes.
- Use selb to nab the appropriate bits. */
- buf_ptr[0] = si_selb (buf_ptr[0], line[0], si_fsmb (bits));
-
- /* Rotate to next 16 byte section of cache. */
- bits = si_rotqbyi (bits, 2);
-
- buf_ptr[1] = si_selb (buf_ptr[1], line[1], si_fsmb (bits));
- bits = si_rotqbyi (bits, 2);
- buf_ptr[2] = si_selb (buf_ptr[2], line[2], si_fsmb (bits));
- bits = si_rotqbyi (bits, 2);
- buf_ptr[3] = si_selb (buf_ptr[3], line[3], si_fsmb (bits));
- bits = si_rotqbyi (bits, 2);
- buf_ptr[4] = si_selb (buf_ptr[4], line[4], si_fsmb (bits));
- bits = si_rotqbyi (bits, 2);
- buf_ptr[5] = si_selb (buf_ptr[5], line[5], si_fsmb (bits));
- bits = si_rotqbyi (bits, 2);
- buf_ptr[6] = si_selb (buf_ptr[6], line[6], si_fsmb (bits));
- bits = si_rotqbyi (bits, 2);
- buf_ptr[7] = si_selb (buf_ptr[7], line[7], si_fsmb (bits));
- bits = si_rotqbyi (bits, 2);
-
- mfc_putllc (buf_ptr, tag, 0, 0);
- }
- while (mfc_read_atomic_status ());
-
- /* Leave critical section. */
- if (__builtin_expect (mach_stat & 1, 0))
- spu_ienable ();
-#endif
- }
-
- /* In any case, marking the lo tag with 1 which denotes empty. */
- SET_EMPTY (entry, way);
- entry->dirty_bits[way] = (vector unsigned short) si_from_uint (0);
-}
-
-void
-__cache_evict (__ea void *ea)
-{
- addr tag = (addr) ea & ~TAG_MASK;
- struct __cache_tag_array *entry = GET_ENTRY (ea);
- int i = 0;
-
- /* Cycles through all the possible ways an address could be at
- and evicts the way if found. */
-
- for (i = 0; i < WAYS; i++)
- if (CHECK_TAG (entry, i, tag))
- __cache_evict_entry (entry, i);
-}
-
-static void *
-__cache_fill (int way, addr tag)
-{
- unsigned int oldmask, mach_stat;
- char *line = ((void *) 0);
-
- /* Reserve our DMA tag. */
- if (dma_tag == 32)
- dma_tag = mfc_tag_reserve ();
-
- /* Enter critical section. */
- mach_stat = spu_readch (SPU_RdMachStat);
- spu_idisable ();
-
- /* Issue DMA request. */
- line = GET_CACHE_LINE (tag, way);
- mfc_get (line, tag, LINE_SIZE, dma_tag, 0, 0);
-
- /* Wait for DMA completion. */
- oldmask = mfc_read_tag_mask ();
- mfc_write_tag_mask (1 << dma_tag);
- mfc_read_tag_status_all ();
- mfc_write_tag_mask (oldmask);
-
- /* Leave critical section. */
- if (__builtin_expect (mach_stat & 1, 0))
- spu_ienable ();
-
- return (void *) line;
-}
-
-static void
-__cache_miss (__ea void *ea, struct __cache_tag_array *entry, int way)
-{
-
- addr tag = (addr) ea & ~TAG_MASK;
- unsigned int lru = 0;
- int i = 0;
- int idx = 0;
-
- /* If way > 4, then there are no empty slots, so we must evict
- the least recently used entry. */
- if (way >= 4)
- {
- for (i = 0; i < WAYS; i++)
- {
- if (GET_LRU (entry, i) > lru)
- {
- lru = GET_LRU (entry, i);
- idx = i;
- }
- }
- __cache_evict_entry (entry, idx);
- way = idx;
- }
-
- /* Set the empty entry's tag and fill it's cache line. */
-
- SET_TAG (entry, way, tag);
- entry->reserved[way] = 0;
-
- /* Check if the address is just an effective address within the
- SPU's local store. */
-
- /* Because the LS is not 256k aligned, we can't do a nice and mask
- here to compare, so we must check the whole range. */
-
- if ((addr) ea >= (addr) __ea_local_store
- && (addr) ea < (addr) (__ea_local_store + 0x40000))
- {
- SET_IS_LS (entry, way);
- entry->base[way] =
- (void *) ((unsigned int) ((addr) ea -
- (addr) __ea_local_store) & ~0x7f);
- }
- else
- {
- entry->base[way] = __cache_fill (way, tag);
- }
-}
-
-void *
-__cache_fetch_dirty (__ea void *ea, int n_bytes_dirty)
-{
-#ifdef __EA64__
- unsigned int tag_hi;
- qword etag_hi;
-#endif
- unsigned int tag_lo;
- struct __cache_tag_array *entry;
-
- qword etag_lo;
- qword equal;
- qword bit_mask;
- qword way;
-
- /* This first chunk, we merely fill the pointer and tag. */
-
- entry = GET_ENTRY (ea);
-
-#ifndef __EA64__
- tag_lo =
- si_to_uint (si_andc
- (si_shufb
- (si_from_uint ((addr) ea), si_from_uint (0),
- si_from_uint (0x00010203)), si_from_uint (TAG_MASK)));
-#else
- tag_lo =
- si_to_uint (si_andc
- (si_shufb
- (si_from_ullong ((addr) ea), si_from_uint (0),
- si_from_uint (0x04050607)), si_from_uint (TAG_MASK)));
-
- tag_hi =
- si_to_uint (si_shufb
- (si_from_ullong ((addr) ea), si_from_uint (0),
- si_from_uint (0x00010203)));
-#endif
-
- /* Increment LRU in reserved bytes. */
- si_stqd (si_ai (si_lqd (si_from_ptr (entry), 48), 1),
- si_from_ptr (entry), 48);
-
-missreturn:
- /* Check if the entry's lo_tag is equal to the address' lo_tag. */
- etag_lo = si_lqd (si_from_ptr (entry), 0);
- equal = si_ceq (etag_lo, si_from_uint (tag_lo));
-#ifdef __EA64__
- /* And the high tag too. */
- etag_hi = si_lqd (si_from_ptr (entry), 16);
- equal = si_and (equal, (si_ceq (etag_hi, si_from_uint (tag_hi))));
-#endif
-
- if ((si_to_uint (si_orx (equal)) == 0))
- goto misshandler;
-
- if (n_bytes_dirty)
- {
- /* way = 0x40,0x50,0x60,0x70 for each way, which is also the
- offset of the appropriate dirty bits. */
- way = si_shli (si_clz (si_gbb (equal)), 2);
-
- /* To create the bit_mask, we set it to all 1s (uint -1), then we
- shift it over (128 - n_bytes_dirty) times. */
-
- bit_mask = si_from_uint (-1);
-
- bit_mask =
- si_shlqby (bit_mask, si_from_uint ((LINE_SIZE - n_bytes_dirty) / 8));
-
- bit_mask =
- si_shlqbi (bit_mask, si_from_uint ((LINE_SIZE - n_bytes_dirty) % 8));
-
- /* Rotate it around to the correct offset. */
- bit_mask =
- si_rotqby (bit_mask,
- si_from_uint (-1 * ((addr) ea & TAG_MASK) / 8));
-
- bit_mask =
- si_rotqbi (bit_mask,
- si_from_uint (-1 * ((addr) ea & TAG_MASK) % 8));
-
- /* Update the dirty bits. */
- si_stqx (si_or (si_lqx (si_from_ptr (entry), way), bit_mask),
- si_from_ptr (entry), way);
- };
-
- /* We've definitely found the right entry, set LRU (reserved) to 0
- maintaining the LS flag (MSB). */
-
- si_stqd (si_andc
- (si_lqd (si_from_ptr (entry), 48),
- si_and (equal, si_from_uint (~(LS_FLAG)))),
- si_from_ptr (entry), 48);
-
- return (void *)
- si_to_uint (si_a
- (si_orx
- (si_and (si_lqd (si_from_ptr (entry), 32), equal)),
- si_from_uint (((unsigned int) (addr) ea) & TAG_MASK)));
-
-misshandler:
- equal = si_ceqi (etag_lo, 1);
- __cache_miss (ea, entry, (si_to_uint (si_clz (si_gbb (equal))) - 16) >> 2);
- goto missreturn;
-}
-
-void *
-__cache_fetch (__ea void *ea)
-{
- return __cache_fetch_dirty (ea, 0);
-}
-
-void
-__cache_touch (__ea void *ea __attribute__ ((unused)))
-{
- /* NO-OP for now. */
-}
-
-void __cache_flush (void) __attribute__ ((destructor));
-void
-__cache_flush (void)
-{
- struct __cache_tag_array *entry = __cache_tag_array;
- unsigned int i;
- int j;
-
- /* Cycle through each cache entry and evict all used ways. */
-
- for (i = 0; i < CACHE_LINES / WAYS; i++)
- {
- for (j = 0; j < WAYS; j++)
- if (!CHECK_EMPTY (entry, j))
- __cache_evict_entry (entry, j);
-
- entry++;
- }
-}
diff --git a/libgcc/config/spu/divmodti4.c b/libgcc/config/spu/divmodti4.c
deleted file mode 100644
index 3f6ec4b1d40..00000000000
--- a/libgcc/config/spu/divmodti4.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
-
- This file 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 of the License, or (at your option)
- any later version.
-
- This file 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/>. */
-
-#include <spu_intrinsics.h>
-
-typedef unsigned int UTItype __attribute__ ((mode (TI)));
-typedef int TItype __attribute__ ((mode (TI)));
-TItype __divti3 (TItype u, TItype v);
-TItype __modti3 (TItype u, TItype v);
-UTItype __udivti3 (UTItype u, UTItype v);
-UTItype __umodti3 (UTItype u, UTItype v);
-UTItype __udivmodti4 (UTItype u, UTItype v, UTItype *w);
-
-union qword_UTItype
- {
- qword q;
- UTItype t;
- };
-
-inline static qword
-si_from_UTItype (UTItype t)
-{
- union qword_UTItype u;
- u.t = t;
- return u.q;
-}
-
-inline static UTItype
-si_to_UTItype (qword q)
-{
- union qword_UTItype u;
- u.q = q;
- return u.t;
-}
-
-inline static unsigned int
-count_leading_zeros (UTItype x)
-{
- qword c = si_clz (*(qword *) & x);
- qword cmp0 = si_cgti (c, 31);
- qword cmp1 = si_and (cmp0, si_shlqbyi (cmp0, 4));
- qword cmp2 = si_and (cmp1, si_shlqbyi (cmp0, 8));
- qword s = si_a (c, si_and (cmp0, si_shlqbyi (c, 4)));
- s = si_a (s, si_and (cmp1, si_shlqbyi (c, 8)));
- s = si_a (s, si_and (cmp2, si_shlqbyi (c, 12)));
- return si_to_uint (s);
-}
-
-/* Based on implementation of udivmodsi4, which is essentially
- * an optimized version of libgcc/udivmodsi4.c
- clz %7,%2
- clz %4,%1
- il %5,1
- fsmbi %0,0
- sf %7,%4,%7
- ori %3,%1,0
- shl %5,%5,%7
- shl %4,%2,%7
-1: or %8,%0,%5
- rotmi %5,%5,-1
- clgt %6,%4,%3
- sf %7,%4,%3
- rotmi %4,%4,-1
- selb %0,%8,%0,%6
- selb %3,%7,%3,%6
-3: brnz %5,1b
- */
-
-UTItype
-__udivmodti4 (UTItype num, UTItype den, UTItype * rp)
-{
- qword shift =
- si_from_uint (count_leading_zeros (den) - count_leading_zeros (num));
- qword n0 = si_from_UTItype (num);
- qword d0 = si_from_UTItype (den);
- qword bit = si_andi (si_fsmbi (1), 1);
- qword r0 = si_il (0);
- qword m1 = si_fsmbi (0x000f);
- qword mask, r1, n1;
-
- d0 = si_shlqbybi (si_shlqbi (d0, shift), shift);
- bit = si_shlqbybi (si_shlqbi (bit, shift), shift);
-
- do
- {
- r1 = si_or (r0, bit);
-
- // n1 = n0 - d0 in TImode
- n1 = si_bg (d0, n0);
- n1 = si_shlqbyi (n1, 4);
- n1 = si_sf (m1, n1);
- n1 = si_bgx (d0, n0, n1);
- n1 = si_shlqbyi (n1, 4);
- n1 = si_sf (m1, n1);
- n1 = si_bgx (d0, n0, n1);
- n1 = si_shlqbyi (n1, 4);
- n1 = si_sf (m1, n1);
- n1 = si_sfx (d0, n0, n1);
-
- mask = si_fsm (si_cgti (n1, -1));
- r0 = si_selb (r0, r1, mask);
- n0 = si_selb (n0, n1, mask);
- bit = si_rotqmbii (bit, -1);
- d0 = si_rotqmbii (d0, -1);
- }
- while (si_to_uint (si_orx (bit)));
- if (rp)
- *rp = si_to_UTItype (n0);
- return si_to_UTItype (r0);
-}
-
-UTItype
-__udivti3 (UTItype n, UTItype d)
-{
- return __udivmodti4 (n, d, (UTItype *)0);
-}
-
-UTItype
-__umodti3 (UTItype n, UTItype d)
-{
- UTItype w;
- __udivmodti4 (n, d, &w);
- return w;
-}
-
-TItype
-__divti3 (TItype n, TItype d)
-{
- int c = 0;
- TItype w;
-
- if (n < 0)
- {
- c = ~c;
- n = -n;
- }
- if (d < 0)
- {
- c = ~c;
- d = -d;
- }
-
- w = __udivmodti4 (n, d, (UTItype *)0);
- if (c)
- w = -w;
- return w;
-}
-
-TItype
-__modti3 (TItype n, TItype d)
-{
- int c = 0;
- TItype w;
-
- if (n < 0)
- {
- c = ~c;
- n = -n;
- }
- if (d < 0)
- {
- c = ~c;
- d = -d;
- }
-
- __udivmodti4 (n, d, (UTItype *) &w);
- if (c)
- w = -w;
- return w;
-}
diff --git a/libgcc/config/spu/divv2df3.c b/libgcc/config/spu/divv2df3.c
deleted file mode 100644
index d614421cb52..00000000000
--- a/libgcc/config/spu/divv2df3.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
-
- This file 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 of the License, or (at your option)
- any later version.
-
- This file 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/>. */
-
-#include <spu_intrinsics.h>
-
-vector double __divv2df3 (vector double a_in, vector double b_in);
-
-/* __divv2df3 divides the vector dividend a by the vector divisor b and
- returns the resulting vector quotient. Maximum error about 0.5 ulp
- over entire double range including denorms, compared to true result
- in round-to-nearest rounding mode. Handles Inf or NaN operands and
- results correctly. */
-
-vector double
-__divv2df3 (vector double a_in, vector double b_in)
-{
- /* Variables */
- vec_int4 exp, exp_bias;
- vec_uint4 no_underflow, overflow;
- vec_float4 mant_bf, inv_bf;
- vec_ullong2 exp_a, exp_b;
- vec_ullong2 a_nan, a_zero, a_inf, a_denorm, a_denorm0;
- vec_ullong2 b_nan, b_zero, b_inf, b_denorm, b_denorm0;
- vec_ullong2 nan;
- vec_uint4 a_exp, b_exp;
- vec_ullong2 a_mant_0, b_mant_0;
- vec_ullong2 a_exp_1s, b_exp_1s;
- vec_ullong2 sign_exp_mask;
-
- vec_double2 a, b;
- vec_double2 mant_a, mant_b, inv_b, q0, q1, q2, mult;
-
- /* Constants */
- vec_uint4 exp_mask_u32 = spu_splats((unsigned int)0x7FF00000);
- vec_uchar16 splat_hi = (vec_uchar16){0,1,2,3, 0,1,2,3, 8, 9,10,11, 8,9,10,11};
- vec_uchar16 swap_32 = (vec_uchar16){4,5,6,7, 0,1,2,3, 12,13,14,15, 8,9,10,11};
- vec_ullong2 exp_mask = spu_splats(0x7FF0000000000000ULL);
- vec_ullong2 sign_mask = spu_splats(0x8000000000000000ULL);
- vec_float4 onef = spu_splats(1.0f);
- vec_double2 one = spu_splats(1.0);
- vec_double2 exp_53 = (vec_double2)spu_splats(0x0350000000000000ULL);
-
- sign_exp_mask = spu_or(sign_mask, exp_mask);
-
- /* Extract the floating point components from each of the operands including
- * exponent and mantissa.
- */
- a_exp = (vec_uint4)spu_and((vec_uint4)a_in, exp_mask_u32);
- a_exp = spu_shuffle(a_exp, a_exp, splat_hi);
- b_exp = (vec_uint4)spu_and((vec_uint4)b_in, exp_mask_u32);
- b_exp = spu_shuffle(b_exp, b_exp, splat_hi);
-
- a_mant_0 = (vec_ullong2)spu_cmpeq((vec_uint4)spu_andc((vec_ullong2)a_in, sign_exp_mask), 0);
- a_mant_0 = spu_and(a_mant_0, spu_shuffle(a_mant_0, a_mant_0, swap_32));
-
- b_mant_0 = (vec_ullong2)spu_cmpeq((vec_uint4)spu_andc((vec_ullong2)b_in, sign_exp_mask), 0);
- b_mant_0 = spu_and(b_mant_0, spu_shuffle(b_mant_0, b_mant_0, swap_32));
-
- a_exp_1s = (vec_ullong2)spu_cmpeq(a_exp, exp_mask_u32);
- b_exp_1s = (vec_ullong2)spu_cmpeq(b_exp, exp_mask_u32);
-
- /* Identify all possible special values that must be accommodated including:
- * +-denorm, +-0, +-infinity, and NaNs.
- */
- a_denorm0= (vec_ullong2)spu_cmpeq(a_exp, 0);
- a_nan = spu_andc(a_exp_1s, a_mant_0);
- a_zero = spu_and (a_denorm0, a_mant_0);
- a_inf = spu_and (a_exp_1s, a_mant_0);
- a_denorm = spu_andc(a_denorm0, a_zero);
-
- b_denorm0= (vec_ullong2)spu_cmpeq(b_exp, 0);
- b_nan = spu_andc(b_exp_1s, b_mant_0);
- b_zero = spu_and (b_denorm0, b_mant_0);
- b_inf = spu_and (b_exp_1s, b_mant_0);
- b_denorm = spu_andc(b_denorm0, b_zero);
-
- /* Scale denorm inputs to into normalized numbers by conditionally scaling the
- * input parameters.
- */
- a = spu_sub(spu_or(a_in, exp_53), spu_sel(exp_53, a_in, sign_mask));
- a = spu_sel(a_in, a, a_denorm);
-
- b = spu_sub(spu_or(b_in, exp_53), spu_sel(exp_53, b_in, sign_mask));
- b = spu_sel(b_in, b, b_denorm);
-
- /* Extract the divisor and dividend exponent and force parameters into the signed
- * range [1.0,2.0) or [-1.0,2.0).
- */
- exp_a = spu_and((vec_ullong2)a, exp_mask);
- exp_b = spu_and((vec_ullong2)b, exp_mask);
-
- mant_a = spu_sel(a, one, (vec_ullong2)exp_mask);
- mant_b = spu_sel(b, one, (vec_ullong2)exp_mask);
-
- /* Approximate the single reciprocal of b by using
- * the single precision reciprocal estimate followed by one
- * single precision iteration of Newton-Raphson.
- */
- mant_bf = spu_roundtf(mant_b);
- inv_bf = spu_re(mant_bf);
- inv_bf = spu_madd(spu_nmsub(mant_bf, inv_bf, onef), inv_bf, inv_bf);
-
- /* Perform 2 more Newton-Raphson iterations in double precision. The
- * result (q1) is in the range (0.5, 2.0).
- */
- inv_b = spu_extend(inv_bf);
- inv_b = spu_madd(spu_nmsub(mant_b, inv_b, one), inv_b, inv_b);
- q0 = spu_mul(mant_a, inv_b);
- q1 = spu_madd(spu_nmsub(mant_b, q0, mant_a), inv_b, q0);
-
- /* Determine the exponent correction factor that must be applied
- * to q1 by taking into account the exponent of the normalized inputs
- * and the scale factors that were applied to normalize them.
- */
- exp = spu_rlmaska(spu_sub((vec_int4)exp_a, (vec_int4)exp_b), -20);
- exp = spu_add(exp, (vec_int4)spu_add(spu_and((vec_int4)a_denorm, -0x34), spu_and((vec_int4)b_denorm, 0x34)));
-
- /* Bias the quotient exponent depending on the sign of the exponent correction
- * factor so that a single multiplier will ensure the entire double precision
- * domain (including denorms) can be achieved.
- *
- * exp bias q1 adjust exp
- * ===== ======== ==========
- * positive 2^+65 -65
- * negative 2^-64 +64
- */
- exp_bias = spu_xor(spu_rlmaska(exp, -31), 64);
- exp = spu_sub(exp, exp_bias);
-
- q1 = spu_sel(q1, (vec_double2)spu_add((vec_int4)q1, spu_sl(exp_bias, 20)), exp_mask);
-
- /* Compute a multiplier (mult) to applied to the quotient (q1) to produce the
- * expected result. On overflow, clamp the multiplier to the maximum non-infinite
- * number in case the rounding mode is not round-to-nearest.
- */
- exp = spu_add(exp, 0x3FF);
- no_underflow = spu_cmpgt(exp, 0);
- overflow = spu_cmpgt(exp, 0x7FE);
- exp = spu_and(spu_sl(exp, 20), (vec_int4)no_underflow);
- exp = spu_and(exp, (vec_int4)exp_mask);
-
- mult = spu_sel((vec_double2)exp, (vec_double2)(spu_add((vec_uint4)exp_mask, -1)), (vec_ullong2)overflow);
-
- /* Handle special value conditions. These include:
- *
- * 1) IF either operand is a NaN OR both operands are 0 or INFINITY THEN a NaN
- * results.
- * 2) ELSE IF the dividend is an INFINITY OR the divisor is 0 THEN a INFINITY results.
- * 3) ELSE IF the dividend is 0 OR the divisor is INFINITY THEN a 0 results.
- */
- mult = spu_andc(mult, (vec_double2)spu_or(a_zero, b_inf));
- mult = spu_sel(mult, (vec_double2)exp_mask, spu_or(a_inf, b_zero));
-
- nan = spu_or(a_nan, b_nan);
- nan = spu_or(nan, spu_and(a_zero, b_zero));
- nan = spu_or(nan, spu_and(a_inf, b_inf));
-
- mult = spu_or(mult, (vec_double2)nan);
-
- /* Scale the final quotient */
-
- q2 = spu_mul(q1, mult);
-
- return (q2);
-}
-
-
-/* We use the same function for vector and scalar division. Provide the
- scalar entry point as an alias. */
-double __divdf3 (double a, double b)
- __attribute__ ((__alias__ ("__divv2df3")));
-
-/* Some toolchain builds used the __fast_divdf3 name for this helper function.
- Provide this as another alternate entry point for compatibility. */
-double __fast_divdf3 (double a, double b)
- __attribute__ ((__alias__ ("__divv2df3")));
-
diff --git a/libgcc/config/spu/float_disf.c b/libgcc/config/spu/float_disf.c
deleted file mode 100644
index affe698ec8e..00000000000
--- a/libgcc/config/spu/float_disf.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
-
- This file 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 of the License, or (at your option)
- any later version.
-
- This file 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/>. */
-
-/* Prototype. */
-float __floatdisf (long long x);
-
-float __floatdisf (long long x)
-{
- /* The SPU back-end now generates inline code for this conversion.
- This file is solely used to provide the __floatdisf functions
- for objects generated with prior versions of GCC. */
- return x;
-}
diff --git a/libgcc/config/spu/float_unsdidf.c b/libgcc/config/spu/float_unsdidf.c
deleted file mode 100644
index 11a3b02083a..00000000000
--- a/libgcc/config/spu/float_unsdidf.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
-
- This file 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 of the License, or (at your option)
- any later version.
-
- This file 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/>. */
-
-#include <spu_intrinsics.h>
-const unsigned char __didf_scale[16] __attribute__ ((__aligned__ (16))) = {
- 0x00, 0x00, 0x04, 0x3e,
- 0x00, 0x00, 0x04, 0x1e,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00
-};
-const unsigned char __didf_pat[16] __attribute__ ((__aligned__ (16))) = {
- 0x02, 0x03, 0x10, 0x11,
- 0x12, 0x13, 0x80, 0x80,
- 0x06, 0x07, 0x14, 0x15,
- 0x16, 0x17, 0x80, 0x80
-};
-
-/* double __float_unsdidf (unsigned long long int)
- Construct two exact doubles representing the high and low parts (in
- parallel), then add them. */
-qword __float_unsdidf (qword DI);
-qword
-__float_unsdidf (qword DI)
-{
- qword t0, t1, t2, t3, t4, t5, t6, t7, t8;
- t0 = si_clz (DI);
- t1 = si_shl (DI, t0);
- t2 = si_ceqi (t0, 32);
- t3 = si_sf (t0, *(const qword *) __didf_scale);
- t4 = si_a (t1, t1);
- t5 = si_andc (t3, t2);
- t6 = si_shufb (t5, t4, *(const qword *) __didf_pat);
- t7 = si_shlqbii (t6, 4);
- t8 = si_shlqbyi (t7, 8);
- return si_dfa (t7, t8);
-}
diff --git a/libgcc/config/spu/float_unsdisf.c b/libgcc/config/spu/float_unsdisf.c
deleted file mode 100644
index 8913baca32b..00000000000
--- a/libgcc/config/spu/float_unsdisf.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
-
- This file 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 of the License, or (at your option)
- any later version.
-
- This file 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/>. */
-
-/* Prototype. */
-float __floatundisf (unsigned long long x);
-
-float __floatundisf (unsigned long long x)
-{
- /* The SPU back-end now generates inline code for this conversion.
- This file is solely used to provide the __floatundisf function
- for objects generated with prior versions of GCC. */
- return x;
-}
diff --git a/libgcc/config/spu/float_unssidf.c b/libgcc/config/spu/float_unssidf.c
deleted file mode 100644
index fc000ce83ce..00000000000
--- a/libgcc/config/spu/float_unssidf.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
-
- This file 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 of the License, or (at your option)
- any later version.
-
- This file 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/>. */
-
-#include <spu_intrinsics.h>
-const unsigned char __sidf_pat[16] __attribute__ ((__aligned__ (16))) = {
- 0x02, 0x03, 0x10, 0x11,
- 0x12, 0x13, 0x80, 0x80,
- 0x06, 0x07, 0x14, 0x15,
- 0x16, 0x17, 0x80, 0x80
-};
-
-/* double __float_unssidf (unsigned int SI) */
-qword __float_unssidf (qword SI);
-qword
-__float_unssidf (qword SI)
-{
- qword t0, t1, t2, t3, t4, t5, t6, t7;
- t0 = si_clz (SI);
- t1 = si_il (1054);
- t2 = si_shl (SI, t0);
- t3 = si_ceqi (t0, 32);
- t4 = si_sf (t0, t1);
- t5 = si_a (t2, t2);
- t6 = si_andc (t4, t3);
- t7 = si_shufb (t6, t5, *(const qword *) __sidf_pat);
- return si_shlqbii (t7, 4);
-}
diff --git a/libgcc/config/spu/mfc_multi_tag_release.c b/libgcc/config/spu/mfc_multi_tag_release.c
deleted file mode 100644
index 504d3b613f6..00000000000
--- a/libgcc/config/spu/mfc_multi_tag_release.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright (C) 2007-2018 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/>. */
-
-#include <spu_mfcio.h>
-extern vector unsigned int __mfc_tag_table;
-
-/* Release a sequential group of tags from exclusive use. The sequential
- group of tags is the range starting from <first_tag> through
- <first_tag>+<number_of_tags>-1. Upon successful release, MFC_DMA_TAG_VALID
- is returned and the tags become available for future reservation.
-
- If the specified tags were not previously reserved, no action is
- taken and MFC_DMA_TAG_INVALID is returned. */
-
-unsigned int
-__mfc_multi_tag_release (unsigned int first_tag, unsigned int number_of_tags)
-{
- vector unsigned int table_copy, tmp, tmp1;
- vector unsigned int one = (vector unsigned int)
- { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF };
- vector unsigned int is_invalid;
- unsigned int last_tag;
- vector unsigned int has_been_reserved;
-
- last_tag = first_tag + number_of_tags;
-
- table_copy = spu_sl (one, number_of_tags);
- table_copy = spu_rl (table_copy, -last_tag);
- table_copy = spu_xor (table_copy, -1);
-
- /* Make sure the tags are in range and valid. */
- tmp = spu_cmpgt (spu_promote(last_tag, 0), 32);
- tmp1 = spu_cmpgt (spu_promote(number_of_tags, 0), 32);
- is_invalid = spu_cmpgt (spu_promote(first_tag, 0), 31);
-
- /* All bits are set to 1 if invalid, 0 if valid. */
- is_invalid = spu_or (tmp, is_invalid);
- is_invalid = spu_or (tmp1, is_invalid);
-
- /* check whether these tags have been reserved */
- tmp = spu_rlmask (one, (int)-number_of_tags);
- tmp1 = spu_sl (__mfc_tag_table, first_tag);
- has_been_reserved = spu_cmpgt(tmp1, tmp);
-
- is_invalid = spu_or (has_been_reserved, is_invalid);
-
- table_copy = spu_sel (__mfc_tag_table, table_copy, table_copy);
- __mfc_tag_table = spu_sel (table_copy, __mfc_tag_table, is_invalid);
-
- return spu_extract (is_invalid, 0);
-}
-
diff --git a/libgcc/config/spu/mfc_multi_tag_reserve.c b/libgcc/config/spu/mfc_multi_tag_reserve.c
deleted file mode 100644
index 925e7f69da8..00000000000
--- a/libgcc/config/spu/mfc_multi_tag_reserve.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 2007-2018 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/>. */
-
-#include <spu_mfcio.h>
-extern vector unsigned int __mfc_tag_table;
-
-/* Reserve a sequential group of tags for exclusive use. The number of
- tags to be reserved is specified by the <number_of_tags> parameter.
- This routine returns the first tag ID for a sequential list of
- available tags and marks them as reserved. The reserved group
- of tags is in the range starting from the returned tag through
- the returned tag + <number_of_tags>-1.
-
- If the number of tags requested exceeds the number of available
- sequential tags, then MFC_DMA_TAG_INVALID is returned indicating
- that the request could not be serviced. */
-
-unsigned int
-__mfc_multi_tag_reserve (unsigned int number_of_tags)
-{
- vector unsigned int table_copy;
- vector unsigned int one = (vector unsigned int)
- { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF };
- vector unsigned int count_busy, is_valid;
- vector unsigned int count_total;
- vector unsigned int count_avail = (vector unsigned int) { 0, 0, 0, 0 };
- vector unsigned int index = (vector unsigned int) { 0, 0, 0, 0 };
-
- table_copy = __mfc_tag_table;
-
-
- /* count_busy: number of consecutive busy tags
- count_avail: number of consecutive free tags
- table_copy: temporary copy of the tag table
- count_total: sum of count_busy and count_avail
- index: index of the current working tag */
- do
- {
- table_copy = spu_sl (table_copy, count_avail);
-
- count_busy = spu_cntlz (table_copy);
- table_copy = spu_sl (table_copy, count_busy);
- count_avail = spu_cntlz (spu_xor(table_copy, -1));
- count_total = spu_add (count_busy, count_avail);
- index = spu_add (index, count_total);
- }
- while (spu_extract (count_avail, 0) < number_of_tags
- && spu_extract (table_copy, 0) != 0);
-
- index = spu_sub (index, count_avail);
-
- /* is_valid is set to 0xFFFFFFFF if table_copy == 0, 0 otherwise. */
- is_valid = spu_cmpeq (table_copy, 0);
- index = spu_sel (index, is_valid, is_valid);
-
- /* Now I need to actually mark the tags as used. */
- table_copy = spu_sl (one, number_of_tags);
- table_copy = spu_rl (table_copy, -number_of_tags - spu_extract (index, 0));
- table_copy = spu_sel (table_copy, __mfc_tag_table, table_copy);
- __mfc_tag_table = spu_sel (table_copy, __mfc_tag_table, is_valid);
-
- return spu_extract (index, 0);
-}
-
diff --git a/libgcc/config/spu/mfc_tag_release.c b/libgcc/config/spu/mfc_tag_release.c
deleted file mode 100644
index d18b8b2e410..00000000000
--- a/libgcc/config/spu/mfc_tag_release.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 2007-2018 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/>. */
-
-#include <spu_mfcio.h>
-extern vector unsigned int __mfc_tag_table;
-
-/* Release the specified DMA tag from exclusive use. Once released, the
- tag is available for future reservation. Upon successful release,
- MFC_DMA_TAG_VALID is returned. If the specified tag is not in the
- range 0 to 31, or had not been reserved, no action is taken and
- MFC_DMA_TAG_INVALID is returned. */
-
-unsigned int
-__mfc_tag_release (unsigned int tag)
-{
- vector unsigned int is_invalid;
- vector unsigned int mask = (vector unsigned int)
- { 0x80000000, 0x80000000, 0x80000000, 0x80000000 };
- vector signed int zero = (vector signed int) { 0, 0, 0, 0 };
-
- vector signed int has_been_reserved;
-
- /* Check if the tag is out of range. */
- is_invalid = spu_cmpgt (spu_promote (tag, 0), 31);
-
- /* Check whether the tag has been reserved, set to all 1 if has not
- been reserved, 0 otherwise. */
- has_been_reserved = (vector signed int) spu_rl (__mfc_tag_table, tag);
- has_been_reserved = (vector signed int) spu_cmpgt (zero, has_been_reserved);
-
- /* Set invalid. */
- is_invalid = spu_or ((vector unsigned int) has_been_reserved, is_invalid);
-
- mask = spu_rlmask (mask, (int)(-tag));
- __mfc_tag_table = spu_or (__mfc_tag_table, mask);
-
- return spu_extract(is_invalid, 0);
-}
-
diff --git a/libgcc/config/spu/mfc_tag_reserve.c b/libgcc/config/spu/mfc_tag_reserve.c
deleted file mode 100644
index 16414329d51..00000000000
--- a/libgcc/config/spu/mfc_tag_reserve.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 2007-2018 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/>. */
-
-#include <spu_mfcio.h>
-extern vector unsigned int __mfc_tag_table;
-
-/* Reserves a DMA tag for exclusive use. This routine returns an available
- tag id in the range 0 to 31 and marks the tag as reserved. If no tags
- are available, MFC_DMA_TAG_INVALID is returned indicating that all tags
- are already reserved. */
-
-unsigned int
-__mfc_tag_reserve (void)
-{
- vector unsigned int mask = (vector unsigned int)
- { 0x80000000, 0x80000000, 0x80000000, 0x80000000 };
- vector unsigned int count_zeros, is_valid;
- vector signed int count_neg;
-
- count_zeros = spu_cntlz (__mfc_tag_table);
- count_neg = spu_sub (0, (vector signed int) count_zeros);
-
- mask = spu_rlmask (mask, (vector signed int) count_neg);
- __mfc_tag_table = spu_andc (__mfc_tag_table, mask);
-
- is_valid = spu_cmpeq (count_zeros, 32);
- count_zeros = spu_sel (count_zeros, is_valid, is_valid);
-
- return spu_extract (count_zeros, 0);
-}
-
diff --git a/libgcc/config/spu/multi3.c b/libgcc/config/spu/multi3.c
deleted file mode 100644
index 99c8aacbf3b..00000000000
--- a/libgcc/config/spu/multi3.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
-
- This file 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 of the License, or (at your option)
- any later version.
-
- This file 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/>. */
-
-#include <spu_intrinsics.h>
-
-typedef int TItype __attribute__ ((mode (TI)));
-
-union qword_TItype
- {
- qword q;
- TItype t;
- };
-
-inline static qword
-si_from_TItype (TItype t)
-{
- union qword_TItype u;
- u.t = t;
- return u.q;
-}
-
-inline static TItype
-si_to_TItype (qword q)
-{
- union qword_TItype u;
- u.q = q;
- return u.t;
-}
-
-/* A straight forward vectorization and unrolling of
- * short l[8], r[8];
- * TItype total = 0;
- * for (i = 0; i < 8; i++)
- * for (j = 0; j < 8; j++)
- * total += (TItype)((l[7-i] * r[7-j]) << (16 * (i + j)));
- */
-TItype
-__multi3 (TItype l, TItype r)
-{
- qword u = si_from_TItype (l);
- qword v = si_from_TItype (r);
- qword splat0 = si_shufb (v, v, si_ilh (0x0001));
- qword splat1 = si_shufb (v, v, si_ilh (0x0203));
- qword splat2 = si_shufb (v, v, si_ilh (0x0405));
- qword splat3 = si_shufb (v, v, si_ilh (0x0607));
- qword splat4 = si_shufb (v, v, si_ilh (0x0809));
- qword splat5 = si_shufb (v, v, si_ilh (0x0a0b));
- qword splat6 = si_shufb (v, v, si_ilh (0x0c0d));
- qword splat7 = si_shufb (v, v, si_ilh (0x0e0f));
-
- qword part0l = si_shlqbyi (si_mpyu (u, splat0), 14);
- qword part1h = si_shlqbyi (si_mpyhhu (u, splat1), 14);
- qword part1l = si_shlqbyi (si_mpyu (u, splat1), 12);
- qword part2h = si_shlqbyi (si_mpyhhu (u, splat2), 12);
- qword part2l = si_shlqbyi (si_mpyu (u, splat2), 10);
- qword part3h = si_shlqbyi (si_mpyhhu (u, splat3), 10);
- qword part3l = si_shlqbyi (si_mpyu (u, splat3), 8);
- qword part4h = si_shlqbyi (si_mpyhhu (u, splat4), 8);
- qword part4l = si_shlqbyi (si_mpyu (u, splat4), 6);
- qword part5h = si_shlqbyi (si_mpyhhu (u, splat5), 6);
- qword part5l = si_shlqbyi (si_mpyu (u, splat5), 4);
- qword part6h = si_shlqbyi (si_mpyhhu (u, splat6), 4);
- qword part6l = si_shlqbyi (si_mpyu (u, splat6), 2);
- qword part7h = si_shlqbyi (si_mpyhhu (u, splat7), 2);
- qword part7l = si_mpyu (u, splat7);
-
- qword carry, total0, total1, total2, total3, total4;
- qword total5, total6, total7, total8, total9, total10;
- qword total;
-
- total0 = si_a (si_a (si_a (part0l, part1h), si_a (part1l, part2h)), part7l);
- total1 = si_a (part2l, part3h);
- total2 = si_a (part3l, part4h);
- total3 = si_a (part4l, part5h);
- total4 = si_a (part5l, part6h);
- total5 = si_a (part6l, part7h);
- total6 = si_a (total0, total1);
- total7 = si_a (total2, total3);
- total8 = si_a (total4, total5);
- total9 = si_a (total6, total7);
- total10 = si_a (total8, total9);
-
- carry = si_cg (part2l, part3h);
- carry = si_a (carry, si_cg (part3l, part4h));
- carry = si_a (carry, si_cg (part4l, part5h));
- carry = si_a (carry, si_cg (part5l, part6h));
- carry = si_a (carry, si_cg (part6l, part7h));
- carry = si_a (carry, si_cg (total0, total1));
- carry = si_a (carry, si_cg (total2, total3));
- carry = si_a (carry, si_cg (total4, total5));
- carry = si_a (carry, si_cg (total6, total7));
- carry = si_a (carry, si_cg (total8, total9));
- carry = si_shlqbyi (carry, 4);
-
- total = si_cg (total10, carry);
- total = si_shlqbyi (total, 4);
- total = si_cgx (total10, carry, total);
- total = si_shlqbyi (total, 4);
- total = si_addx (total10, carry, total);
- return si_to_TItype (total);
-}
diff --git a/libgcc/config/spu/t-elf b/libgcc/config/spu/t-elf
deleted file mode 100644
index 29536e88132..00000000000
--- a/libgcc/config/spu/t-elf
+++ /dev/null
@@ -1,59 +0,0 @@
-# Don't let CTOR_LIST end up in sdata section.
-# FIXME: This is the default.
-CRTSTUFF_T_CFLAGS =
-
-# We exclude those because the libgcc2.c default versions do not support
-# the SPU single-precision format (round towards zero). We provide our
-# own versions below and/or via direct expansion.
-LIB2FUNCS_EXCLUDE = _floatdisf _floatundisf _floattisf _floatunstisf
-
-LIB2ADD_ST = $(srcdir)/config/spu/float_unssidf.c \
- $(srcdir)/config/spu/float_unsdidf.c \
- $(srcdir)/config/spu/float_unsdisf.c \
- $(srcdir)/config/spu/float_disf.c \
- $(srcdir)/config/spu/mfc_tag_table.c \
- $(srcdir)/config/spu/mfc_tag_reserve.c \
- $(srcdir)/config/spu/mfc_tag_release.c \
- $(srcdir)/config/spu/mfc_multi_tag_reserve.c \
- $(srcdir)/config/spu/mfc_multi_tag_release.c \
- $(srcdir)/config/spu/multi3.c \
- $(srcdir)/config/spu/divmodti4.c \
- $(srcdir)/config/spu/divv2df3.c
-
-# Build TImode conversion routines to support Fortran 128-bit
-# integer data types.
-LIB2_SIDITI_CONV_FUNCS = yes
-
-HOST_LIBGCC2_CFLAGS += -mwarn-reloc -D__IN_LIBGCC2
-
-# Neither gcc or newlib seem to have a standard way to generate multiple
-# crt*.o files. So we don't use the standard crt0.o name anymore.
-
-cachemgr.o: $(srcdir)/config/spu/cachemgr.c
- $(gcc_compile) -c $<
-
-# Specialised rule to add a -D flag.
-cachemgr_nonatomic.o: $(srcdir)/config/spu/cachemgr.c
- $(gcc_compile) -DNONATOMIC -c $<
-
-libgcc_%.a: %.o
- $(AR_FOR_TARGET) -rcs $@ $<
-
-cache8k.o: $(srcdir)/config/spu/cache.S
- $(gcc_compile) -D__CACHE_SIZE__=8 -c $<
-
-cache16k.o: $(srcdir)/config/spu/cache.S
- $(gcc_compile) -D__CACHE_SIZE__=16 -c $<
-
-cache32k.o: $(srcdir)/config/spu/cache.S
- $(gcc_compile) -D__CACHE_SIZE__=32 -c $<
-
-cache64k.o: $(srcdir)/config/spu/cache.S
- $(gcc_compile) -D__CACHE_SIZE__=64 -c $<
-
-cache128k.o: $(srcdir)/config/spu/cache.S
- $(gcc_compile) -D__CACHE_SIZE__=128 -c $<
-
-# We provide our own version of __divdf3 that performs better and has
-# better support for non-default rounding modes.
-DPBIT_FUNCS := $(filter-out _div_df, $(DPBIT_FUNCS))
diff --git a/libgcc/config/stormy16/lib2funcs.c b/libgcc/config/stormy16/lib2funcs.c
index 47749462713..92833ab1f67 100644
--- a/libgcc/config/stormy16/lib2funcs.c
+++ b/libgcc/config/stormy16/lib2funcs.c
@@ -4,7 +4,7 @@
files. On this glorious day maybe this code can be integrated into
it too. */
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/stormy16/t-stormy16 b/libgcc/config/stormy16/t-stormy16
index c5455c8c3e5..88965b02550 100644
--- a/libgcc/config/stormy16/t-stormy16
+++ b/libgcc/config/stormy16/t-stormy16
@@ -1,6 +1,6 @@
# -*- makefile -*-
#
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/t-darwin b/libgcc/config/t-darwin
index 13ca6ed99d3..3b5e3428958 100644
--- a/libgcc/config/t-darwin
+++ b/libgcc/config/t-darwin
@@ -1,22 +1,20 @@
# Set this as a minimum (unless overriden by arch t-files) since it's a
# reasonable lowest common denominator that works for all our archs.
-HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.5
+HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.4
crt3.o: $(srcdir)/config/darwin-crt3.c
- $(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -c $<
+ $(crt_compile) -mmacosx-version-min=10.4 -c $<
crttms.o: $(srcdir)/config/darwin-crt-tm.c
- $(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -DSTART -c $<
+ $(crt_compile) -mmacosx-version-min=10.4 -DSTART -c $<
crttme.o: $(srcdir)/config/darwin-crt-tm.c
- $(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -DEND -c $<
-
-# -pipe because there's an assembler bug, 4077127, which causes
-# it to not properly process the first # directive, causing temporary
-# file names to appear in stabs, causing the bootstrap to fail. Using -pipe
-# works around this by not having any temporary file names.
-HOST_LIBGCC2_CFLAGS += -pipe
+ $(crt_compile) -mmacosx-version-min=10.4 -DEND -c $<
# Use unwind-dw2-fde-darwin
LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/config/unwind-dw2-fde-darwin.c \
$(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
+
+# Patch to __Unwind_Find_Enclosing_Function for Darwin10.
+d10-uwfef.o: $(srcdir)/config/darwin10-unwind-find-enc-func.c
+ $(crt_compile) -mmacosx-version-min=10.6 -c $<
diff --git a/libgcc/config/t-gthr-noweak b/libgcc/config/t-gthr-noweak
new file mode 100644
index 00000000000..45a21e9361d
--- /dev/null
+++ b/libgcc/config/t-gthr-noweak
@@ -0,0 +1,2 @@
+# Don't use weak references for single-thread detection
+HOST_LIBGCC2_CFLAGS += -DGTHREAD_USE_WEAK=0
diff --git a/libgcc/config/t-gthr-vxworks b/libgcc/config/t-gthr-vxworks
new file mode 100644
index 00000000000..455d0b320d7
--- /dev/null
+++ b/libgcc/config/t-gthr-vxworks
@@ -0,0 +1,5 @@
+# Extra libgcc2 modules used by gthr-vxworks.h functions
+LIB2ADDEH += $(srcdir)/config/gthr-vxworks.c\
+ $(srcdir)/config/gthr-vxworks-cond.c\
+ $(srcdir)/config/gthr-vxworks-thread.c\
+ $(srcdir)/config/gthr-vxworks-tls.c \ No newline at end of file
diff --git a/libgcc/config/t-gthr-vxworksae b/libgcc/config/t-gthr-vxworksae
new file mode 100644
index 00000000000..1471298afd3
--- /dev/null
+++ b/libgcc/config/t-gthr-vxworksae
@@ -0,0 +1,7 @@
+# Extra libgcc2 modules used by gthr-vxworks.h functions. We don't
+# support the C++ threads on vx653.
+
+LIB2ADDEH += $(srcdir)/config/gthr-vxworks.c\
+ $(srcdir)/config/gthr-vxworks-cond.c\
+ $(srcdir)/config/gthr-vxworks-tls.c
+
diff --git a/libgcc/config/t-hardfp b/libgcc/config/t-hardfp
index 474dac08e05..014184261c5 100644
--- a/libgcc/config/t-hardfp
+++ b/libgcc/config/t-hardfp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-2019 Free Software Foundation, Inc.
# This file is part of GCC.
diff --git a/libgcc/config/t-hardfp-sfdf b/libgcc/config/t-hardfp-sfdf
index 09ad5b4566b..aaff298b15c 100644
--- a/libgcc/config/t-hardfp-sfdf
+++ b/libgcc/config/t-hardfp-sfdf
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-2019 Free Software Foundation, Inc.
# This file is part of GCC.
diff --git a/libgcc/config/t-libunwind-elf b/libgcc/config/t-libunwind-elf
index 5172135d2ae..d07895bb6eb 100644
--- a/libgcc/config/t-libunwind-elf
+++ b/libgcc/config/t-libunwind-elf
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc
index 7e60b621a2d..099bf23e62f 100644
--- a/libgcc/config/t-slibgcc
+++ b/libgcc/config/t-slibgcc
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/t-slibgcc-fuchsia b/libgcc/config/t-slibgcc-fuchsia
index e9afd4d38b2..8654edbe19f 100644
--- a/libgcc/config/t-slibgcc-fuchsia
+++ b/libgcc/config/t-slibgcc-fuchsia
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
@@ -20,7 +20,7 @@
SHLIB_LDFLAGS = -Wl,--soname=$(SHLIB_SONAME) \
$(LDFLAGS)
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/t-slibgcc-libgcc b/libgcc/config/t-slibgcc-libgcc
index 2e6fb1d3b09..1eaf02edff9 100644
--- a/libgcc/config/t-slibgcc-libgcc
+++ b/libgcc/config/t-slibgcc-libgcc
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/t-slibgcc-sld b/libgcc/config/t-slibgcc-sld
index 0b9539114e4..03c6a659551 100644
--- a/libgcc/config/t-slibgcc-sld
+++ b/libgcc/config/t-slibgcc-sld
@@ -8,12 +8,23 @@ ifeq ($(enable_shared),yes)
# Linker mapfile to enforce direct binding to libgcc_s unwinder
# (PR target/59788).
+# Emit v2 mapfile syntax if possible, otherwise ld -z guidance complains
+# every time the mapfile is used.
libgcc-unwind.map: libgcc-std.ver
+ifeq ($(solaris_ld_v2_maps),yes)
+ @(echo '$$mapfile_version 2'; \
+ echo "SYMBOL_SCOPE {"; \
+ for f in `grep _Unwind_ $< | sort`; do \
+ echo " $$f { FLAGS = EXTERN DIRECT };"; \
+ done; \
+ echo "};" ) > $@
+else
@(echo "{"; \
for f in `grep _Unwind_ $< | sort`; do \
echo " $$f = EXTERN DIRECT;"; \
done; \
echo "};" ) > $@
+endif
# Copy libgcc-unwind.map to the place where gcc will look for it at build-time.
install-libgcc-unwind-map-forbuild: libgcc-unwind.map
diff --git a/libgcc/config/t-softfp b/libgcc/config/t-softfp
index f7a8250a549..9c54c36c28c 100644
--- a/libgcc/config/t-softfp
+++ b/libgcc/config/t-softfp
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
+# Copyright (C) 2006-2019 Free Software Foundation, Inc.
# This file is part of GCC.
diff --git a/libgcc/config/t-vxcrtstuff b/libgcc/config/t-vxcrtstuff
new file mode 100644
index 00000000000..96b728525e0
--- /dev/null
+++ b/libgcc/config/t-vxcrtstuff
@@ -0,0 +1,12 @@
+# crtbegin/crtend for VxWorks (DKM or RTP)
+
+vx_crtbegin-kernel.o: $(srcdir)/config/vxcrtstuff.c
+ $(crt_compile) $(CRTSTUFF_T_CFLAGS) -DCRT_BEGIN -c $<
+
+vx_crtbegin-rtp.o: $(srcdir)/config/vxcrtstuff.c
+ $(crt_compile) $(CRTSTUFF_T_CFLAGS) -DCRT_BEGIN -c $< -mrtp
+
+vx_crtend.o: $(srcdir)/config/vxcrtstuff.c
+ $(crt_compile) $(CRTSTUFF_T_CFLAGS) -DCRT_END -c $<
+
+EXTRA_PARTS += vx_crtbegin-kernel.o vx_crtbegin-rtp.o vx_crtend.o
diff --git a/libgcc/config/t-vxworks b/libgcc/config/t-vxworks
index df70feecef3..757cead6724 100644
--- a/libgcc/config/t-vxworks
+++ b/libgcc/config/t-vxworks
@@ -1,8 +1,10 @@
# Don't build libgcc.a with debug info
LIBGCC2_DEBUG_CFLAGS =
-# Extra libgcc2 modules used by gthr-vxworks.h functions
-LIB2ADDEH += $(srcdir)/config/vxlib.c $(srcdir)/config/vxlib-tls.c
+# We provide our own implementation for __clear_cache, using a
+# VxWorks specific entry point.
+LIB2FUNCS_EXCLUDE += _clear_cache
+LIB2ADD += $(srcdir)/config/vxcache.c
# This ensures that the correct target headers are used; some VxWorks
# system headers have names that collide with GCC's internal (host)
diff --git a/libgcc/config/t-vxworks7 b/libgcc/config/t-vxworks7
index f0293feb472..f2cc904ac08 100644
--- a/libgcc/config/t-vxworks7
+++ b/libgcc/config/t-vxworks7
@@ -1,8 +1,10 @@
# Don't build libgcc.a with debug info
LIBGCC2_DEBUG_CFLAGS =
-# Extra libgcc2 modules used by gthr-vxworks.h functions
-LIB2ADDEH += $(srcdir)/config/vxlib.c $(srcdir)/config/vxlib-tls.c
+# We provide our own implementation for __clear_cache, using a
+# VxWorks specific entry point.
+LIB2FUNCS_EXCLUDE += _clear_cache
+LIB2ADD += $(srcdir)/config/vxcache.c
# This ensures that the correct target headers are used; some VxWorks
# system headers have names that collide with GCC's internal (host)
@@ -16,4 +18,3 @@ LIBGCC2_INCLUDES = -nostdinc -I. \
*/mrtp*) echo -I$(VSB_DIR)/usr/h/public -I$(VSB_DIR)/usr/h ;; \
*) echo -I$(VSB_DIR)/krnl/h/system -I$(VSB_DIR)/krnl/h/public ;; \
esac`
-
diff --git a/libgcc/config/t-vxworksae b/libgcc/config/t-vxworksae
new file mode 100644
index 00000000000..f5003abd104
--- /dev/null
+++ b/libgcc/config/t-vxworksae
@@ -0,0 +1,17 @@
+# Don't build libgcc.a with debug info
+LIBGCC2_DEBUG_CFLAGS =
+
+# We do not have access to the cache library when building a vThreads
+# application.
+
+# This ensures that the correct target headers are used; some VxWorks
+# system headers have names that collide with GCC's internal (host)
+# headers, e.g. regs.h. Make sure the local libgcc headers still
+# prevail (e.g. unwind.h), and that gcc provided header files intended
+# to be user visible eventually are visible as well.
+LIBGCC2_INCLUDES = -nostdinc -I. \
+ -I$(MULTIBUILDTOP)../../gcc/include \
+ `case "/$(MULTIDIR)" in \
+ */mvthreads*) echo -I$(WIND_BASE)/target/vThreads/h -I$(WIND_BASE)/target/val/h -I$(WIND_BASE)/target/h/wrn/coreip ;; \
+ *) echo -I$(WIND_BASE)/target/h -I$(WIND_BASE)/target/h/wrn/coreip ;; \
+ esac`
diff --git a/libgcc/config/tilepro/atomic.c b/libgcc/config/tilepro/atomic.c
index 765c36a6ce4..47152c1ace6 100644
--- a/libgcc/config/tilepro/atomic.c
+++ b/libgcc/config/tilepro/atomic.c
@@ -1,5 +1,5 @@
/* TILE atomics.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Walter Lee (walt@tilera.com)
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/tilepro/atomic.h b/libgcc/config/tilepro/atomic.h
index 56c932fe5cb..1b7f1df300f 100644
--- a/libgcc/config/tilepro/atomic.h
+++ b/libgcc/config/tilepro/atomic.h
@@ -1,5 +1,5 @@
/* Macros for atomic functionality for tile.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Walter Lee (walt@tilera.com)
This file is free software; you can redistribute it and/or modify it
@@ -59,7 +59,7 @@
advantage of the kernel's existing atomic-integer support (managed
by a distributed array of locks). The kernel provides proper
ordering among simultaneous atomic operations on different cores,
- and guarantees a process can not be context-switched part way
+ and guarantees a process cannot be context-switched part way
through an atomic operation. By virtue of sharing the kernel
atomic implementation, the userspace atomic operations
are compatible with the atomic methods provided by the kernel's
diff --git a/libgcc/config/tilepro/linux-unwind.h b/libgcc/config/tilepro/linux-unwind.h
index e6d7b775666..5665e0aefae 100644
--- a/libgcc/config/tilepro/linux-unwind.h
+++ b/libgcc/config/tilepro/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for TILEPro.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Walter Lee (walt@tilera.com)
This file is part of GCC.
diff --git a/libgcc/config/tilepro/softdivide.c b/libgcc/config/tilepro/softdivide.c
index 854bd1ada5c..f43aa456cb7 100644
--- a/libgcc/config/tilepro/softdivide.c
+++ b/libgcc/config/tilepro/softdivide.c
@@ -1,5 +1,5 @@
/* Division and remainder routines for Tile.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Walter Lee (walt@tilera.com)
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/tilepro/softmpy.S b/libgcc/config/tilepro/softmpy.S
index fd247a7c16a..36ed883e976 100644
--- a/libgcc/config/tilepro/softmpy.S
+++ b/libgcc/config/tilepro/softmpy.S
@@ -1,5 +1,5 @@
/* 64-bit multiplication support for TILEPro.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Walter Lee (walt@tilera.com)
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/unwind-dw2-fde-darwin.c b/libgcc/config/unwind-dw2-fde-darwin.c
index 6e2d0d6d8b2..b06df65f06f 100644
--- a/libgcc/config/unwind-dw2-fde-darwin.c
+++ b/libgcc/config/unwind-dw2-fde-darwin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -273,16 +273,3 @@ _Unwind_Find_FDE (void *pc, struct dwarf_eh_bases *bases)
the_obj_info);
return ret;
}
-
-void *
-_darwin10_Unwind_FindEnclosingFunction (void *pc ATTRIBUTE_UNUSED)
-{
-#if __MACH__ && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060)
- struct dwarf_eh_bases bases;
- const struct dwarf_fde *fde = _Unwind_Find_FDE (pc-1, &bases);
- if (fde)
- return bases.func;
-#endif
- return NULL;
-}
-
diff --git a/libgcc/config/v850/lib1funcs.S b/libgcc/config/v850/lib1funcs.S
index 89f2380a49e..38834c69683 100644
--- a/libgcc/config/v850/lib1funcs.S
+++ b/libgcc/config/v850/lib1funcs.S
@@ -1,5 +1,5 @@
/* libgcc routines for NEC V850.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/vax/lib1funcs.S b/libgcc/config/vax/lib1funcs.S
index 839f5ebce6b..42abf5cdb54 100644
--- a/libgcc/config/vax/lib1funcs.S
+++ b/libgcc/config/vax/lib1funcs.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of GCC.
Contributed by Maciej W. Rozycki <macro@linux-mips.org>.
diff --git a/libgcc/config/visium/crti.S b/libgcc/config/visium/crti.S
index 7cdbfe763cb..dc0d562c728 100644
--- a/libgcc/config/visium/crti.S
+++ b/libgcc/config/visium/crti.S
@@ -1,5 +1,5 @@
/* crti.S for Visium.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/visium/crtn.S b/libgcc/config/visium/crtn.S
index c6238885d8e..16b2a3b41bd 100644
--- a/libgcc/config/visium/crtn.S
+++ b/libgcc/config/visium/crtn.S
@@ -1,5 +1,5 @@
/* crtn.S for Visium.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/visium/divdi3.c b/libgcc/config/visium/divdi3.c
index a0dc900378e..15371171d16 100644
--- a/libgcc/config/visium/divdi3.c
+++ b/libgcc/config/visium/divdi3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/visium/lib2funcs.c b/libgcc/config/visium/lib2funcs.c
index eba91512124..4554e7d51ca 100644
--- a/libgcc/config/visium/lib2funcs.c
+++ b/libgcc/config/visium/lib2funcs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -315,7 +315,9 @@ __set_trampoline_parity (UWtype *addr)
{
int i;
- for (i = 0; i < (TRAMPOLINE_SIZE * __CHAR_BIT__) / W_TYPE_SIZE; i++)
+ for (i = 0;
+ i < (__LIBGCC_TRAMPOLINE_SIZE__ * __CHAR_BIT__) / W_TYPE_SIZE;
+ i++)
addr[i] |= parity_bit (addr[i]);
}
#endif
diff --git a/libgcc/config/visium/memcpy.c b/libgcc/config/visium/memcpy.c
index 29690b357b8..159f0425419 100644
--- a/libgcc/config/visium/memcpy.c
+++ b/libgcc/config/visium/memcpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/visium/memcpy.h b/libgcc/config/visium/memcpy.h
index fc47d1931d6..94acb2fd039 100644
--- a/libgcc/config/visium/memcpy.h
+++ b/libgcc/config/visium/memcpy.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/visium/memset.c b/libgcc/config/visium/memset.c
index 8687e49b61a..1f6754cba3a 100644
--- a/libgcc/config/visium/memset.c
+++ b/libgcc/config/visium/memset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/visium/memset.h b/libgcc/config/visium/memset.h
index 73ecbb7b3b6..141f4b78dbb 100644
--- a/libgcc/config/visium/memset.h
+++ b/libgcc/config/visium/memset.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/visium/moddi3.c b/libgcc/config/visium/moddi3.c
index dd12f111f40..1de5ec02299 100644
--- a/libgcc/config/visium/moddi3.c
+++ b/libgcc/config/visium/moddi3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/visium/set_trampoline_parity.c b/libgcc/config/visium/set_trampoline_parity.c
index ce1dd59556d..2c7a82360b1 100644
--- a/libgcc/config/visium/set_trampoline_parity.c
+++ b/libgcc/config/visium/set_trampoline_parity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/visium/t-visium b/libgcc/config/visium/t-visium
index ee8fd767163..b661f002ad9 100644
--- a/libgcc/config/visium/t-visium
+++ b/libgcc/config/visium/t-visium
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/visium/udivdi3.c b/libgcc/config/visium/udivdi3.c
index bee5078ca13..04ca52b25f3 100644
--- a/libgcc/config/visium/udivdi3.c
+++ b/libgcc/config/visium/udivdi3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/visium/udivmoddi4.c b/libgcc/config/visium/udivmoddi4.c
index b18237421e4..c68c58fb071 100644
--- a/libgcc/config/visium/udivmoddi4.c
+++ b/libgcc/config/visium/udivmoddi4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/visium/umoddi3.c b/libgcc/config/visium/umoddi3.c
index 4f4e8542b1e..8efa6e1fa83 100644
--- a/libgcc/config/visium/umoddi3.c
+++ b/libgcc/config/visium/umoddi3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/vms/vms-ucrt0.c b/libgcc/config/vms/vms-ucrt0.c
index 7d49f8c7795..0a36d8d94f5 100644
--- a/libgcc/config/vms/vms-ucrt0.c
+++ b/libgcc/config/vms/vms-ucrt0.c
@@ -1,5 +1,5 @@
/* VMS crt0 returning Unix style condition codes.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GCC.
diff --git a/libgcc/config/spu/mfc_tag_table.c b/libgcc/config/vxcache.c
index d26e1fb9471..f37a423083c 100644
--- a/libgcc/config/spu/mfc_tag_table.c
+++ b/libgcc/config/vxcache.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2019 Free Software Foundation, Inc.
+ Contributed by Alexandre Oliva <oliva@adacore.com>
This file is part of GCC.
@@ -21,19 +22,14 @@ 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/>. */
-/* The free tag table used by the MFC tag manager, with tag0
- reserved for the overlay manager. */
-__vector unsigned int
-__mfc_tag_table = (__vector unsigned int) { 0x7FFFFFFF, -1, -1, -1 };
+/* Instruction cache invalidation routine using VxWorks' cacheLib. */
-/* Arrange to release tag0 if overlays are not present. */
-static void __mfc_tag_init (void) __attribute__ ((constructor));
+#include <vxWorks.h>
+#include <cacheLib.h>
-static void
-__mfc_tag_init (void)
+void
+__clear_cache (char *beg __attribute__((__unused__)),
+ char *end __attribute__((__unused__)))
{
- extern void _ovly_table __attribute__ ((weak));
-
- if (&_ovly_table == 0)
- __mfc_tag_table = (__vector unsigned int) { -1, -1, -1, -1 };
+ cacheTextUpdate (beg, end - beg);
}
diff --git a/libgcc/config/vxcrtstuff.c b/libgcc/config/vxcrtstuff.c
new file mode 100644
index 00000000000..616ad072cba
--- /dev/null
+++ b/libgcc/config/vxcrtstuff.c
@@ -0,0 +1,132 @@
+/* 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/>. */
+
+/* The essential point of the crtbegin/crtend files on VxWorks is to handle
+ the eh frames registration thanks to dedicated constructors and
+ destructors. What needs to be done depends on the VxWorks version and the
+ kind of module (rtp, dkm, ...) one is building. */
+
+#define IN_LIBGCC2
+
+#include "auto-host.h"
+#include "tconfig.h"
+#include "tsystem.h"
+#include "coretypes.h"
+#include "tm.h"
+#include "libgcc_tm.h"
+#include "unwind-dw2-fde.h"
+
+/* If we are entitled/requested to use init/fini arrays, we'll rely on that.
+ Otherwise, we may rely on ctors/dtors sections for RTPs or expect munch to
+ be involved for kernel modules. */
+
+#if !defined(USE_INIT_FINI_ARRAY) && defined(__RTP__)
+#define USE_CDTORS_SECTIONS
+#endif
+
+/* ------------------------------ crtbegin ------------------------------- */
+
+#ifdef CRT_BEGIN
+
+/* Stick a label at the beginning of the frame unwind info so we can register
+ and deregister it with the exception handling library code. */
+static const char __EH_FRAME_BEGIN__[]
+__attribute__((section(__LIBGCC_EH_FRAME_SECTION_NAME__), aligned(4)))
+ = { };
+
+/* Determine what names to use for the constructor/destructor functions. */
+
+#if defined(USE_CDTORS_SECTIONS) || defined(USE_INITFINI_ARRAY)
+
+#define EH_CTOR_NAME _crtbe_register_frame
+#define EH_DTOR_NAME _ctrbe_deregister_frame
+
+#else
+
+/* No specific sections for constructors or destructors: we thus use a
+ symbol naming convention so that the constructors are then recognized
+ by munch or whatever tool is used for the final link phase. */
+#define EH_CTOR_NAME _GLOBAL__I_00101_0__crtbe_register_frame
+#define EH_DTOR_NAME _GLOBAL__D_00101_1__crtbe_deregister_frame
+
+#endif
+
+#ifdef USE_INITFINI_ARRAY
+/* .init_array and .fini_array is supported starting VxWorks 7.2 in all
+ cases. The compiler is then configured to always support priorities in
+ constructors, so we can rely on the constructor and destructor attributes
+ to generate the proper sections. */
+#define EH_CTOR_ATTRIBUTE __attribute__((constructor (101)))
+#define EH_DTOR_ATTRIBUTE __attribute__((destructor (101)))
+
+#else /* USE_INITFINI_ARRAY */
+
+/* Note: Even in case of .ctors/.dtors sections, we can't use the attribute
+ (constructor (15)) here as gcc may have been configured with constructors
+ priority disabled. We will instead craft an explicit section name for this
+ purpose. */
+#define EH_CTOR_ATTRIBUTE
+#define EH_DTOR_ATTRIBUTE
+
+#endif /* USE_INITFINI_ARRAY */
+
+void EH_CTOR_NAME (void);
+void EH_DTOR_NAME (void);
+
+EH_CTOR_ATTRIBUTE void EH_CTOR_NAME (void)
+{
+ static struct object object;
+ __register_frame_info (__EH_FRAME_BEGIN__, &object);
+}
+
+EH_DTOR_ATTRIBUTE void EH_DTOR_NAME (void)
+{
+ __deregister_frame_info (__EH_FRAME_BEGIN__);
+}
+
+#ifdef USE_CDTORS_SECTIONS
+/* As explained above, we need to manually build the sections here as the
+ compiler may not have support for constructors priority enabled. */
+static void (* volatile eh_registration_ctors[])()
+ __attribute__((section (".ctors.101")))
+= { &EH_CTOR_NAME };
+static void (* volatile eh_registration_dtors[])()
+ __attribute__((section (".dtors.65434")))
+= { &EH_DTOR_NAME };
+#endif
+
+/* ------------------------------ crtend --------------------------------- */
+
+#elif defined (CRT_END) /* ! CRT_BEGIN */
+
+/* Terminate the frame unwind info section with a 4byte 0 as a sentinel;
+ this would be the 'length' field in a real FDE. */
+
+static const char __FRAME_END__[]
+ __attribute__ ((used, section(__LIBGCC_EH_FRAME_SECTION_NAME__),
+ aligned(4)))
+ = { 0, 0, 0, 0 };
+
+#else /* ! CRT_BEGIN & ! CRT_END */
+
+#error "One of CRT_BEGIN or CRT_END must be defined."
+
+#endif
diff --git a/libgcc/config/vxlib.c b/libgcc/config/vxlib.c
deleted file mode 100644
index 7dcee4ca313..00000000000
--- a/libgcc/config/vxlib.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
- Contributed by Zack Weinberg <zack@codesourcery.com>
-
-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/>. */
-
-/* Threads compatibility routines for libgcc2 for VxWorks.
- These are out-of-line routines called from gthr-vxworks.h. */
-
-#include "tconfig.h"
-#include "tsystem.h"
-#include "gthr.h"
-
-#if defined(__GTHREADS)
-#include <vxWorks.h>
-#ifndef __RTP__
-#include <vxLib.h>
-#endif
-#include <taskLib.h>
-#ifndef __RTP__
-#include <taskHookLib.h>
-#else
-# include <errno.h>
-#endif
-
-/* Init-once operation.
-
- This would be a clone of the implementation from gthr-solaris.h,
- except that we have a bootstrap problem - the whole point of this
- exercise is to prevent double initialization, but if two threads
- are racing with each other, once->mutex is liable to be initialized
- by both. Then each thread will lock its own mutex, and proceed to
- call the initialization routine.
-
- So instead we use a bare atomic primitive (vxTas()) to handle
- mutual exclusion. Threads losing the race then busy-wait, calling
- taskDelay() to yield the processor, until the initialization is
- completed. Inefficient, but reliable. */
-
-int
-__gthread_once (__gthread_once_t *guard, void (*func)(void))
-{
- if (guard->done)
- return 0;
-
-#ifdef __RTP__
- __gthread_lock_library ();
-#else
- while (!vxTas ((void *)&guard->busy))
- {
-#ifdef __PPC__
- /* This can happen on powerpc, which is using all 32 bits
- of the gthread_once_t structure. */
- if (guard->done)
- return 0;
-#endif
- taskDelay (1);
- }
-#endif
-
- /* Only one thread at a time gets here. Check ->done again, then
- go ahead and call func() if no one has done it yet. */
- if (!guard->done)
- {
- func ();
- guard->done = 1;
- }
-
-#ifdef __RTP__
- __gthread_unlock_library ();
-#else
- guard->busy = 0;
-#endif
- return 0;
-}
-
-#endif /* __GTHREADS */
diff --git a/libgcc/config/xtensa/crti.S b/libgcc/config/xtensa/crti.S
index b6bc7f63cb0..3b2f5731536 100644
--- a/libgcc/config/xtensa/crti.S
+++ b/libgcc/config/xtensa/crti.S
@@ -1,5 +1,5 @@
# Start .init and .fini sections.
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
diff --git a/libgcc/config/xtensa/crtn.S b/libgcc/config/xtensa/crtn.S
index c559bc9dfe0..1f3b1ab416d 100644
--- a/libgcc/config/xtensa/crtn.S
+++ b/libgcc/config/xtensa/crtn.S
@@ -1,5 +1,5 @@
# End of .init and .fini sections.
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
diff --git a/libgcc/config/xtensa/ieee754-df.S b/libgcc/config/xtensa/ieee754-df.S
index a997c1b4263..8f1576f8c8d 100644
--- a/libgcc/config/xtensa/ieee754-df.S
+++ b/libgcc/config/xtensa/ieee754-df.S
@@ -1,5 +1,5 @@
/* IEEE-754 double-precision functions for Xtensa
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
This file is part of GCC.
diff --git a/libgcc/config/xtensa/ieee754-sf.S b/libgcc/config/xtensa/ieee754-sf.S
index 695c67b0fc8..cad7bb4f74a 100644
--- a/libgcc/config/xtensa/ieee754-sf.S
+++ b/libgcc/config/xtensa/ieee754-sf.S
@@ -1,5 +1,5 @@
/* IEEE-754 single-precision functions for Xtensa
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
This file is part of GCC.
diff --git a/libgcc/config/xtensa/lib1funcs.S b/libgcc/config/xtensa/lib1funcs.S
index 59e65c2360f..3c621afa578 100644
--- a/libgcc/config/xtensa/lib1funcs.S
+++ b/libgcc/config/xtensa/lib1funcs.S
@@ -1,5 +1,5 @@
/* Assembly functions for the Xtensa version of libgcc1.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
This file is part of GCC.
diff --git a/libgcc/config/xtensa/lib2funcs.S b/libgcc/config/xtensa/lib2funcs.S
index 686b43f9f55..81b5c4993e2 100644
--- a/libgcc/config/xtensa/lib2funcs.S
+++ b/libgcc/config/xtensa/lib2funcs.S
@@ -1,5 +1,5 @@
/* Assembly functions for libgcc2.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
This file is part of GCC.
diff --git a/libgcc/config/xtensa/linux-unwind.h b/libgcc/config/xtensa/linux-unwind.h
index f4b1f0925b3..9888942575f 100644
--- a/libgcc/config/xtensa/linux-unwind.h
+++ b/libgcc/config/xtensa/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for Xtensa.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/xtensa/unwind-dw2-xtensa.c b/libgcc/config/xtensa/unwind-dw2-xtensa.c
index d6352498d8f..92aba704257 100644
--- a/libgcc/config/xtensa/unwind-dw2-xtensa.c
+++ b/libgcc/config/xtensa/unwind-dw2-xtensa.c
@@ -1,5 +1,5 @@
/* DWARF2 exception handling and frame unwinding for Xtensa.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/xtensa/unwind-dw2-xtensa.h b/libgcc/config/xtensa/unwind-dw2-xtensa.h
index a73a6c14ca9..6a398db1c3b 100644
--- a/libgcc/config/xtensa/unwind-dw2-xtensa.h
+++ b/libgcc/config/xtensa/unwind-dw2-xtensa.h
@@ -1,5 +1,5 @@
/* DWARF2 frame unwind data structure for Xtensa.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/configure b/libgcc/configure
index 090e5484131..117e9c97e57 100644..100755
--- a/libgcc/configure
+++ b/libgcc/configure
@@ -1,10 +1,10 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.64 for GNU C Runtime Library 1.0.
+# Generated by GNU Autoconf 2.69 for GNU C Runtime Library 1.0.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
-# Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
@@ -87,6 +87,7 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -131,6 +132,31 @@ export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
@@ -164,7 +190,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -209,14 +236,25 @@ IFS=$as_save_IFS
if test "x$CONFIG_SHELL" != x; then :
- # We cannot yet assume a decent shell, so we have to provide a
- # neutralization value for shells without unset; and this also
- # works around shells that cannot unset nonexistent variables.
- BASH_ENV=/dev/null
- ENV=/dev/null
- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
if test x$as_have_required = xno; then :
@@ -314,10 +352,18 @@ $as_echo X"$as_dir" |
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -354,19 +400,19 @@ else
fi # as_fn_arith
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
- as_status=$?; test $as_status -eq 0 && as_status=1
- if test "$3"; then
- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $1" >&2
+ $as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -439,6 +485,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
@@ -473,16 +523,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -494,28 +544,8 @@ else
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -524,10 +554,11 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-exec 7<&0 </dev/null 6>&1
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
@@ -570,8 +601,10 @@ sfp_machine_header
set_use_emutls
set_have_cc_tls
vis_hide
+solaris_ld_v2_maps
real_host_noncanonical
accel_dir_suffix
+use_tm_clone_registry
force_explicit_eh_registry
CET_FLAGS
fixed_point
@@ -680,6 +713,7 @@ enable_decimal_float
with_system_libunwind
enable_cet
enable_explicit_exception_frame_registration
+enable_tm_clone_registry
with_glibc_version
enable_tls
with_gcc_major_version_only
@@ -755,8 +789,9 @@ do
fi
case $ac_option in
- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *) ac_optarg=yes ;;
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
@@ -801,7 +836,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -827,7 +862,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1031,7 +1066,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1047,7 +1082,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1077,8 +1112,8 @@ do
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
- -*) as_fn_error "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information."
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
;;
*=*)
@@ -1086,7 +1121,7 @@ Try \`$0 --help' for more information."
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
@@ -1096,7 +1131,7 @@ Try \`$0 --help' for more information."
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
@@ -1104,13 +1139,13 @@ done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error "missing argument to $ac_option"
+ as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
- fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1133,7 +1168,7 @@ do
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
- as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
@@ -1147,8 +1182,6 @@ target=$target_alias
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1163,9 +1196,9 @@ test "$silent" = yes && exec 6>/dev/null
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error "working directory cannot be determined"
+ as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error "pwd does not report name of working directory"
+ as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
@@ -1204,11 +1237,11 @@ else
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1248,7 +1281,7 @@ Configuration:
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
+ -q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
@@ -1324,6 +1357,7 @@ Optional Features:
register exception tables explicitly at module
start, for use e.g. for compatibility with
installations without PT_GNU_EH_FRAME support
+ --disable-tm-clone-registry disable TM clone registry
--enable-tls Use thread-local storage [default=yes]
Optional Packages:
@@ -1349,7 +1383,7 @@ Some influential environment variables:
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
@@ -1422,9 +1456,9 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
GNU C Runtime Library configure 1.0
-generated by GNU Autoconf 2.64
+generated by GNU Autoconf 2.69
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1468,8 +1502,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
- return $ac_retval
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
@@ -1494,7 +1528,7 @@ $as_echo "$ac_try_echo"; } >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } >/dev/null && {
+ test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
}; then :
@@ -1505,8 +1539,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
- return $ac_retval
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
} # ac_fn_c_try_cpp
@@ -1547,8 +1581,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=$ac_status
fi
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
- return $ac_retval
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
} # ac_fn_c_try_run
@@ -1569,7 +1603,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -1585,7 +1620,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -1611,7 +1647,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -1627,7 +1664,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -1661,7 +1699,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -1725,8 +1764,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
rm -f conftest.val
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
- return $ac_retval
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
} # ac_fn_c_compute_int
@@ -1738,7 +1777,7 @@ ac_fn_c_check_header_preproc ()
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1750,12 +1789,12 @@ if ac_fn_c_try_cpp "$LINENO"; then :
else
eval "$3=no"
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_preproc
cat >config.log <<_ACEOF
@@ -1763,7 +1802,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by GNU C Runtime Library $as_me 1.0, which was
-generated by GNU Autoconf 2.64. Invocation command line was
+generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -1873,11 +1912,9 @@ trap 'exit_status=$?
{
echo
- cat <<\_ASBOX
-## ---------------- ##
+ $as_echo "## ---------------- ##
## Cache variables. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
@@ -1911,11 +1948,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
)
echo
- cat <<\_ASBOX
-## ----------------- ##
+ $as_echo "## ----------------- ##
## Output variables. ##
-## ----------------- ##
-_ASBOX
+## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
@@ -1928,11 +1963,9 @@ _ASBOX
echo
if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------------- ##
+ $as_echo "## ------------------- ##
## File substitutions. ##
-## ------------------- ##
-_ASBOX
+## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
@@ -1946,11 +1979,9 @@ _ASBOX
fi
if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
+ $as_echo "## ----------- ##
## confdefs.h. ##
-## ----------- ##
-_ASBOX
+## ----------- ##"
echo
cat confdefs.h
echo
@@ -2005,7 +2036,12 @@ _ACEOF
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
- ac_site_file1=$CONFIG_SITE
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
elif test "x$prefix" != xNONE; then
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
@@ -2016,18 +2052,22 @@ fi
for ac_site_file in "$ac_site_file1" "$ac_site_file2"
do
test "x$ac_site_file" = xNONE && continue
- if test -r "$ac_site_file"; then
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
fi
done
if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
$as_echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
@@ -2096,7 +2136,7 @@ if $ac_cache_corrupted; then
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
@@ -2155,16 +2195,22 @@ fi
ac_aux_dir=
for ac_dir in $libgcc_topdir "$srcdir"/$libgcc_topdir; do
- for ac_t in install-sh install.sh shtool; do
- if test -f "$ac_dir/$ac_t"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/$ac_t -c"
- break 2
- fi
- done
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
done
if test -z "$ac_aux_dir"; then
- as_fn_error "cannot find install-sh, install.sh, or shtool in $libgcc_topdir \"$srcdir\"/$libgcc_topdir" "$LINENO" 5
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in $libgcc_topdir \"$srcdir\"/$libgcc_topdir" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
@@ -2233,7 +2279,7 @@ if test "${with_aix_soname+set}" = set; then :
$as_echo_n "checking which variant of shared library versioning to provide for shared libgcc... " >&6; }
case ${withval} in
aix|svr4|both) ;;
- *) as_fn_error "Unknown argument to --with-aix-soname" "$LINENO" 5;;
+ *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
$as_echo "$withval" >&6; }
@@ -2249,27 +2295,27 @@ fi
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
+if ${ac_cv_build+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
- as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
-*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
@@ -2287,14 +2333,14 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
+if ${ac_cv_host+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi
fi
@@ -2302,7 +2348,7 @@ fi
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
-*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
@@ -2408,7 +2454,7 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
enableval=$enable_version_specific_runtime_libs; case "$enableval" in
yes) version_specific_libs=yes ;;
no) version_specific_libs=no ;;
- *) as_fn_error "Unknown argument to enable/disable version-specific libs" "$LINENO" 5;;
+ *) as_fn_error $? "Unknown argument to enable/disable version-specific libs" "$LINENO" 5;;
esac
else
version_specific_libs=no
@@ -2440,7 +2486,7 @@ if test "${enable_maintainer_mode+set}" = set; then :
enableval=$enable_maintainer_mode; case ${enable_maintainer_mode} in
yes) MAINT='' ;;
no) MAINT='#' ;;
- *) as_fn_error "--enable-maintainer-mode must be yes or no" "$LINENO" 5 ;;
+ *) as_fn_error $? "--enable-maintainer-mode must be yes or no" "$LINENO" 5 ;;
esac
maintainer_mode=${enableval}
else
@@ -2465,7 +2511,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
+if ${ac_cv_path_install+:} false; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2485,7 +2531,7 @@ case $as_dir/ in #((
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
@@ -2548,7 +2594,7 @@ do
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
+if ${ac_cv_prog_AWK+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AWK"; then
@@ -2560,7 +2606,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2586,7 +2632,7 @@ done
# We need awk; bail out if it's missing.
case ${AWK} in
- "") as_fn_error "can't build without awk, bailing out" "$LINENO" 5 ;;
+ "") as_fn_error $? "can't build without awk, bailing out" "$LINENO" 5 ;;
esac
@@ -2675,7 +2721,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}ar; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then :
+if ${ac_cv_prog_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AR"; then
@@ -2687,7 +2733,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="${ac_tool_prefix}ar"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2715,7 +2761,7 @@ if test -z "$ac_cv_prog_AR"; then
set dummy ar; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_AR"; then
@@ -2727,7 +2773,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="ar"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2767,7 +2813,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}lipo; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then :
+if ${ac_cv_prog_LIPO+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$LIPO"; then
@@ -2779,7 +2825,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2807,7 +2853,7 @@ if test -z "$ac_cv_prog_LIPO"; then
set dummy lipo; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_LIPO"; then
@@ -2819,7 +2865,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_LIPO="lipo"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2859,7 +2905,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}nm; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_NM+set}" = set; then :
+if ${ac_cv_prog_NM+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$NM"; then
@@ -2871,7 +2917,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_NM="${ac_tool_prefix}nm"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2899,7 +2945,7 @@ if test -z "$ac_cv_prog_NM"; then
set dummy nm; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_NM+set}" = set; then :
+if ${ac_cv_prog_ac_ct_NM+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_NM"; then
@@ -2911,7 +2957,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_NM="nm"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2951,7 +2997,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
+if ${ac_cv_prog_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$RANLIB"; then
@@ -2963,7 +3009,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2991,7 +3037,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_RANLIB"; then
@@ -3003,7 +3049,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3043,7 +3089,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$STRIP"; then
@@ -3055,7 +3101,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3083,7 +3129,7 @@ if test -z "$ac_cv_prog_STRIP"; then
set dummy strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_STRIP"; then
@@ -3095,7 +3141,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3153,7 +3199,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -3165,7 +3211,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3193,7 +3239,7 @@ if test -z "$ac_cv_prog_CC"; then
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
@@ -3205,7 +3251,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3246,7 +3292,7 @@ if test -z "$CC"; then
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -3258,7 +3304,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3286,7 +3332,7 @@ if test -z "$CC"; then
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -3299,7 +3345,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
@@ -3345,7 +3391,7 @@ if test -z "$CC"; then
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -3357,7 +3403,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3389,7 +3435,7 @@ do
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
@@ -3401,7 +3447,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3443,8 +3489,8 @@ fi
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "no acceptable C compiler found in \$PATH
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3465,8 +3511,8 @@ $as_echo "$ac_try_echo"; } >&5
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
- rm -f conftest.er1 conftest.err
fi
+ rm -f conftest.er1 conftest.err
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
@@ -3511,12 +3557,12 @@ main ()
}
_ACEOF
ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out"
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
@@ -3578,62 +3624,28 @@ test "$ac_cv_exeext" = no && ac_cv_exeext=
else
ac_file=''
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
if test -z "$ac_file"; then :
- $as_echo "$as_me: failed program was:" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "C compiler cannot create executables
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
$as_echo_n "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
@@ -3663,20 +3675,79 @@ done
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
fi
-rm -f conftest$ac_cv_exeext
+rm -f conftest conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
$as_echo "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
$as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
+if ${ac_cv_objext+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3716,8 +3787,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
@@ -3727,7 +3798,7 @@ OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3764,7 +3835,7 @@ ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
@@ -3842,7 +3913,7 @@ else
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_prog_cc_c89=no
@@ -3851,8 +3922,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3949,7 +4019,7 @@ if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then :
+ if ${ac_cv_prog_CPP+:} false; then :
$as_echo_n "(cached) " >&6
else
# Double quotes because CPP needs to be expanded
@@ -3979,7 +4049,7 @@ else
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -3995,11 +4065,11 @@ else
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
break
fi
@@ -4038,7 +4108,7 @@ else
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -4054,18 +4124,18 @@ else
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
@@ -4087,7 +4157,7 @@ if test "$enable_largefile" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_CC+set}" = set; then :
+if ${ac_cv_sys_largefile_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_sys_largefile_CC=no
@@ -4138,7 +4208,7 @@ $as_echo "$ac_cv_sys_largefile_CC" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
+if ${ac_cv_sys_file_offset_bits+:} false; then :
$as_echo_n "(cached) " >&6
else
while :; do
@@ -4207,7 +4277,7 @@ rm -rf conftest*
if test $ac_cv_sys_file_offset_bits = unknown; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if test "${ac_cv_sys_large_files+set}" = set; then :
+if ${ac_cv_sys_large_files+:} false; then :
$as_echo_n "(cached) " >&6
else
while :; do
@@ -4274,6 +4344,8 @@ _ACEOF
esac
rm -rf conftest*
fi
+
+
fi
@@ -4284,7 +4356,7 @@ fi
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of double" >&5
$as_echo_n "checking size of double... " >&6; }
-if test "${ac_cv_sizeof_double+set}" = set; then :
+if ${ac_cv_sizeof_double+:} false; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default"; then :
@@ -4293,9 +4365,8 @@ else
if test "$ac_cv_type_double" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (double)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (double)
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_double=0
fi
@@ -4318,7 +4389,7 @@ _ACEOF
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5
$as_echo_n "checking size of long double... " >&6; }
-if test "${ac_cv_sizeof_long_double+set}" = set; then :
+if ${ac_cv_sizeof_long_double+:} false; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default"; then :
@@ -4327,9 +4398,8 @@ else
if test "$ac_cv_type_long_double" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (long double)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (long double)
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_long_double=0
fi
@@ -4354,12 +4424,11 @@ as_fn_arith $ac_cv_sizeof_long_double \* 8 && long_double_type_size=$as_val
for ac_header in inttypes.h stdint.h stdlib.h ftw.h \
unistd.h sys/stat.h sys/types.h \
- string.h strings.h memory.h
+ string.h strings.h memory.h sys/auxv.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_preproc "$LINENO" "$ac_header" "$as_ac_Header"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -4369,7 +4438,7 @@ done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
+if ${ac_cv_path_GREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$GREP"; then
@@ -4383,7 +4452,7 @@ do
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+ as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
@@ -4418,7 +4487,7 @@ esac
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_GREP"; then
- as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
@@ -4432,7 +4501,7 @@ $as_echo "$ac_cv_path_GREP" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
+if ${ac_cv_path_EGREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -4449,7 +4518,7 @@ do
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
@@ -4484,7 +4553,7 @@ esac
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
@@ -4499,7 +4568,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4613,7 +4682,7 @@ fi
# Check for decimal float support.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether decimal floating point is supported" >&5
$as_echo_n "checking whether decimal floating point is supported... " >&6; }
-if test "${libgcc_cv_dfp+set}" = set; then :
+if ${libgcc_cv_dfp+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4651,7 +4720,7 @@ if test "${enable_decimal_float+set}" = set; then :
enableval=$enable_decimal_float;
case $enable_decimal_float in
yes | no | bid | dpd) default_decimal_float=$enable_decimal_float ;;
- *) as_fn_error "'$enable_decimal_float' is an invalid value for --enable-decimal-float.
+ *) as_fn_error $? "'$enable_decimal_float' is an invalid value for --enable-decimal-float.
Valid choices are 'yes', 'bid', 'dpd', and 'no'." "$LINENO" 5 ;;
esac
@@ -4700,7 +4769,7 @@ esac
# Check for fixed-point support.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fixed-point is supported" >&5
$as_echo_n "checking whether fixed-point is supported... " >&6; }
-if test "${libgcc_cv_fixed_point+set}" = set; then :
+if ${libgcc_cv_fixed_point+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4762,7 +4831,7 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
# Check if the compiler is configured for setjmp/longjmp exceptions.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is configured for setjmp/longjmp exceptions" >&5
$as_echo_n "checking whether the compiler is configured for setjmp/longjmp exceptions... " >&6; }
-if test "${ac_cv_sjlj_exceptions+set}" = set; then :
+if ${ac_cv_sjlj_exceptions+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4793,7 +4862,7 @@ if test "${enable_cet+set}" = set; then :
enableval=$enable_cet;
case "$enableval" in
yes|no|auto) ;;
- *) as_fn_error "Unknown argument to enable/disable cet" "$LINENO" 5 ;;
+ *) as_fn_error $? "Unknown argument to enable/disable cet" "$LINENO" 5 ;;
esac
else
@@ -4850,7 +4919,7 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
else
- as_fn_error "assembler with CET support is required for --enable-cet" "$LINENO" 5
+ as_fn_error $? "assembler with CET support is required for --enable-cet" "$LINENO" 5
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
@@ -4877,7 +4946,7 @@ if test "${enable_explicit_exception_frame_registration+set}" = set; then :
force_explicit_eh_registry=
if test "$enable_explicit_exception_frame_registration" = yes; then
if test $ac_cv_sjlj_exceptions = yes; then
- as_fn_error "Can't --enable-explicit-exception-frame-registration
+ as_fn_error $? "Can't --enable-explicit-exception-frame-registration
with setjmp/longjmp exceptions" "$LINENO" 5
fi
force_explicit_eh_registry=-DUSE_EH_FRAME_REGISTRY_ALWAYS
@@ -4887,9 +4956,21 @@ fi
+# Check whether --enable-tm-clone-registry was given.
+if test "${enable_tm_clone_registry+set}" = set; then :
+ enableval=$enable_tm_clone_registry;
+use_tm_clone_registry=
+if test "$enable_tm_clone_registry" = no; then
+ use_tm_clone_registry=-DUSE_TM_CLONE_REGISTRY=0
+fi
+
+fi
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${acl_cv_prog_gnu_ld+set}" = set; then :
+if ${acl_cv_prog_gnu_ld+:} false; then :
$as_echo_n "(cached) " >&6
else
# I'd rather use --version here, but apparently some GNU ld's only accept -v.
@@ -4913,7 +4994,7 @@ $as_echo "$target_thread_file" >&6; }
# Check for assembler CFI support.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether assembler supports CFI directives" >&5
$as_echo_n "checking whether assembler supports CFI directives... " >&6; }
-if test "${libgcc_cv_cfi+set}" = set; then :
+if ${libgcc_cv_cfi+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4951,7 +5032,7 @@ case ${host} in
mips*-*-*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the target is hard-float" >&5
$as_echo_n "checking whether the target is hard-float... " >&6; }
-if test "${libgcc_cv_mips_hard_float+set}" = set; then :
+if ${libgcc_cv_mips_hard_float+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4959,6 +5040,7 @@ else
#ifndef __mips_hard_float
#error FOO
#endif
+
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
libgcc_cv_mips_hard_float=yes
@@ -4976,7 +5058,7 @@ case ${host} in
# Check for system-provided CRTs on Solaris 11.4.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking system-provided CRTs on Solaris" >&5
$as_echo_n "checking system-provided CRTs on Solaris... " >&6; }
-if test "${libgcc_cv_solaris_crts+set}" = set; then :
+if ${libgcc_cv_solaris_crts+:} false; then :
$as_echo_n "(cached) " >&6
else
libgcc_cv_solaris_crts=no
@@ -5014,7 +5096,7 @@ if echo "$with_glibc_version" | grep '^[0-9][0-9]*\.[0-9][0-9]*$'; then
glibc_version_major=`echo "$with_glibc_version" | sed -e 's/\..*//'`
glibc_version_minor=`echo "$with_glibc_version" | sed -e 's/.*\.//'`
else
- as_fn_error "option --with-glibc-version requires a version number M.N" "$LINENO" 5
+ as_fn_error $? "option --with-glibc-version requires a version number M.N" "$LINENO" 5
fi
else
@@ -5082,7 +5164,7 @@ powerpc*-*-linux*)
CFLAGS="$CFLAGS -mabi=altivec -mvsx -mfloat128"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PowerPC ISA 2.06 to build __float128 libraries" >&5
$as_echo_n "checking for PowerPC ISA 2.06 to build __float128 libraries... " >&6; }
-if test "${libgcc_cv_powerpc_float128+set}" = set; then :
+if ${libgcc_cv_powerpc_float128+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5102,7 +5184,7 @@ $as_echo "$libgcc_cv_powerpc_float128" >&6; }
CFLAGS="$CFLAGS -mpower9-vector -mfloat128-hardware"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PowerPC ISA 3.0 to build hardware __float128 libraries" >&5
$as_echo_n "checking for PowerPC ISA 3.0 to build hardware __float128 libraries... " >&6; }
-if test "${libgcc_cv_powerpc_float128_hw+set}" = set; then :
+if ${libgcc_cv_powerpc_float128_hw+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5158,7 +5240,7 @@ fi
# Link with -nostartfiles -nodefaultlibs since neither are present while
# building libgcc.
case ${host} in
-i?86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
+i?86-*-solaris2* | x86_64-*-solaris2*)
cat > conftest.s <<EOF
.section .eh_frame,"a",@unwind
.zero 4
@@ -5176,6 +5258,26 @@ EOF
;;
esac
+# Check if Solaris linker support v2 linker mapfile syntax.
+# Link with -nostartfiles -nodefaultlibs since neither are present while
+# building libgcc.
+case ${host} in
+*-*-solaris2*)
+ solaris_ld_v2_maps=no
+ echo 'int main(void) {return 0;}' > conftest.c
+ echo '$mapfile_version 2' > conftest.map
+ if { ac_try='${CC-cc} -nostartfiles -nodefaultlibs -Wl,-M,conftest.map -o conftest conftest.c 1>&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ solaris_ld_v2_maps=yes
+ fi
+ ;;
+esac
+
+
# Check if xtensa target is configured for windowed ABI and thus needs to use
# custom unwind code.
# This is after config.host so we can augment tmake_file.
@@ -5201,7 +5303,7 @@ esac
# we can check for asm_hidden_op.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__((visibility(\"hidden\")))" >&5
$as_echo_n "checking for __attribute__((visibility(\"hidden\")))... " >&6; }
-if test "${libgcc_cv_hidden_visibility_attribute+set}" = set; then :
+if ${libgcc_cv_hidden_visibility_attribute+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -5238,7 +5340,7 @@ fi
# Check for .cfi_sections .debug_frame support.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .cfi_sections .debug_frame" >&5
$as_echo_n "checking for .cfi_sections .debug_frame... " >&6; }
-if test "${libgcc_cv_cfi_sections_directive+set}" = set; then :
+if ${libgcc_cv_cfi_sections_directive+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -5276,7 +5378,7 @@ if test "${enable_tls+set}" = set; then :
enableval=$enable_tls;
case "$enableval" in
yes|no) ;;
- *) as_fn_error "Argument to enable/disable tls must be yes or no" "$LINENO" 5 ;;
+ *) as_fn_error $? "Argument to enable/disable tls must be yes or no" "$LINENO" 5 ;;
esac
else
@@ -5286,7 +5388,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the target assembler supports thread-local storage" >&5
$as_echo_n "checking whether the target assembler supports thread-local storage... " >&6; }
-if test "${gcc_cv_have_cc_tls+set}" = set; then :
+if ${gcc_cv_have_cc_tls+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -5314,7 +5416,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the thread-local storage support is from emutls" >&5
$as_echo_n "checking whether the thread-local storage support is from emutls... " >&6; }
-if test "${gcc_cv_use_emutls+set}" = set; then :
+if ${gcc_cv_use_emutls+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -5352,7 +5454,7 @@ case "${target}" in
i[34567]86-*-* | x86_64-*-*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the assembler supports AVX" >&5
$as_echo_n "checking if the assembler supports AVX... " >&6; }
-if test "${libgcc_cv_as_avx+set}" = set; then :
+if ${libgcc_cv_as_avx+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -5387,7 +5489,7 @@ esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for init priority support" >&5
$as_echo_n "checking for init priority support... " >&6; }
-if test "${libgcc_cv_init_priority+set}" = set; then :
+if ${libgcc_cv_init_priority+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -5455,6 +5557,7 @@ tm_file="${tm_file_}"
case $target_thread_file in
aix) thread_header=config/rs6000/gthr-aix.h ;;
dce) thread_header=config/pa/gthr-dce.h ;;
+ gcn) thread_header=config/gcn/gthr-gcn.h ;;
lynx) thread_header=config/gthr-lynx.h ;;
mipssde) thread_header=config/mips/gthr-mipssde.h ;;
posix) thread_header=gthr-posix.h ;;
@@ -5561,10 +5664,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
- test "x$cache_file" != "x/dev/null" &&
+ if test "x$cache_file" != "x/dev/null"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
- cat confcache >$cache_file
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@ -5580,6 +5694,7 @@ DEFS=-DHAVE_CONFIG_H
ac_libobjs=
ac_ltlibobjs=
+U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -5595,7 +5710,7 @@ LTLIBOBJS=$ac_ltlibobjs
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -5696,6 +5811,7 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5741,19 +5857,19 @@ export LANGUAGE
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
- as_status=$?; test $as_status -eq 0 && as_status=1
- if test "$3"; then
- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $1" >&2
+ $as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -5891,16 +6007,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -5949,7 +6065,7 @@ $as_echo X"$as_dir" |
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
@@ -5960,28 +6076,16 @@ else
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -6003,7 +6107,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by GNU C Runtime Library $as_me 1.0, which was
-generated by GNU Autoconf 2.64. Invocation command line was
+generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -6043,6 +6147,7 @@ Usage: $0 [OPTION]... [TAG]...
-h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
-q, --quiet, --silent
do not print progress messages
-d, --debug don't remove temporary files
@@ -6067,12 +6172,13 @@ General help using GNU software: <http://www.gnu.org/gethelp/>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
GNU C Runtime Library config.status 1.0
-configured by $0, generated by GNU Autoconf 2.64,
- with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -6089,11 +6195,16 @@ ac_need_defaults=:
while test $# != 0
do
case $1 in
- --*=*)
+ --*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
*)
ac_option=$1
ac_optarg=$2
@@ -6107,12 +6218,15 @@ do
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
$as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
@@ -6125,7 +6239,7 @@ do
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
- as_fn_error "ambiguous option: \`$1'
+ as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
@@ -6134,7 +6248,7 @@ Try \`$0 --help' for more information.";;
ac_cs_silent=: ;;
# This is an error.
- -*) as_fn_error "unrecognized option: \`$1'
+ -*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
@@ -6154,7 +6268,7 @@ fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
@@ -6200,7 +6314,7 @@ do
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
- *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
@@ -6223,9 +6337,10 @@ fi
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
- tmp=
+ tmp= ac_tmp=
trap 'exit_status=$?
- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
@@ -6233,12 +6348,13 @@ $debug ||
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
+ test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
-} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
@@ -6255,12 +6371,12 @@ if test "x$ac_cr" = x; then
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\r'
+ ac_cs_awk_cr='\\r'
else
ac_cs_awk_cr=$ac_cr
fi
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
@@ -6269,18 +6385,18 @@ _ACEOF
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -6288,7 +6404,7 @@ done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
@@ -6302,7 +6418,7 @@ s/'"$ac_delim"'$//
t delim
:nl
h
-s/\(.\{148\}\).*/\1/
+s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
@@ -6316,7 +6432,7 @@ s/.\{148\}//
t nl
:delim
h
-s/\(.\{148\}\).*/\1/
+s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
@@ -6336,7 +6452,7 @@ t delim
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
@@ -6368,21 +6484,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
- || as_fn_error "could not setup config files machinery" "$LINENO" 5
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[ ]*\):*/\1/
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
s/^[^=]*=[ ]*$//
}'
fi
@@ -6394,7 +6518,7 @@ fi # test -n "$CONFIG_FILES"
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF
@@ -6406,11 +6530,11 @@ _ACEOF
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
- ac_t=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_t"; then
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
break
elif $ac_last_try; then
- as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -6495,7 +6619,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error "could not setup config headers machinery" "$LINENO" 5
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
@@ -6508,7 +6632,7 @@ do
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
- :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
@@ -6527,7 +6651,7 @@ do
for ac_f
do
case $ac_f in
- -) ac_f="$tmp/stdin";;
+ -) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
@@ -6536,7 +6660,7 @@ do
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
- as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
@@ -6562,8 +6686,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
esac
case $ac_tag in
- *:-:* | *:-) cat >"$tmp/stdin" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
@@ -6693,23 +6817,24 @@ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
s&@INSTALL@&$ac_INSTALL&;t t
$ac_datarootdir_hack
"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&5
+which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&2;}
+which seems to be undefined. Please make sure it is defined" >&2;}
- rm -f "$tmp/stdin"
+ rm -f "$ac_tmp/stdin"
case $ac_file in
- -) cat "$tmp/out" && rm -f "$tmp/out";;
- *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:H)
#
@@ -6718,21 +6843,21 @@ which seems to be undefined. Please make sure it is defined." >&2;}
if test x"$ac_file" != x-; then
{
$as_echo "/* $configure_input */" \
- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
- } >"$tmp/config.h" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
- mv "$tmp/config.h" "$ac_file" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
$as_echo "/* $configure_input */" \
- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error "could not create -" "$LINENO" 5
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
fi
;;
@@ -6759,7 +6884,7 @@ _ACEOF
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
- as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
@@ -6780,7 +6905,7 @@ if test "$no_create" != yes; then
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit $?
+ $ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
diff --git a/libgcc/configure.ac b/libgcc/configure.ac
index 9d0bbcaba86..f63c5e736e5 100644
--- a/libgcc/configure.ac
+++ b/libgcc/configure.ac
@@ -13,7 +13,6 @@ sinclude(../config/gthr.m4)
sinclude(../config/sjlj.m4)
sinclude(../config/cet.m4)
-AC_PREREQ(2.64)
AC_INIT([GNU C Runtime Library], 1.0,,[libgcc])
AC_CONFIG_SRCDIR([static-object.mk])
@@ -208,7 +207,7 @@ AC_SUBST(long_double_type_size)
AC_CHECK_HEADERS(inttypes.h stdint.h stdlib.h ftw.h \
unistd.h sys/stat.h sys/types.h \
- string.h strings.h memory.h)
+ string.h strings.h memory.h sys/auxv.h)
AC_HEADER_STDC
# Check for decimal float support.
@@ -229,7 +228,8 @@ GCC_AC_ENABLE_DECIMAL_FLOAT([$host])
# Check for fixed-point support.
AC_CACHE_CHECK([whether fixed-point is supported], [libgcc_cv_fixed_point],
- [AC_COMPILE_IFELSE([_Sat _Fract x;], [libgcc_cv_fixed_point=yes],
+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Sat _Fract x;])],
+ [libgcc_cv_fixed_point=yes],
[libgcc_cv_fixed_point=no])])
fixed_point=$libgcc_cv_fixed_point
AC_SUBST(fixed_point)
@@ -261,6 +261,16 @@ fi
])
AC_SUBST([force_explicit_eh_registry])
+AC_ARG_ENABLE([tm-clone-registry],
+[ --disable-tm-clone-registry disable TM clone registry],
+[
+use_tm_clone_registry=
+if test "$enable_tm_clone_registry" = no; then
+ use_tm_clone_registry=-DUSE_TM_CLONE_REGISTRY=0
+fi
+])
+AC_SUBST([use_tm_clone_registry])
+
AC_LIB_PROG_LD_GNU
AC_MSG_CHECKING([for thread model used by GCC])
@@ -270,11 +280,11 @@ AC_MSG_RESULT([$target_thread_file])
# Check for assembler CFI support.
AC_CACHE_CHECK([whether assembler supports CFI directives], [libgcc_cv_cfi],
[AC_COMPILE_IFELSE(
-[asm("\n\
+[AC_LANG_SOURCE([asm("\n\
.text\n\
.cfi_startproc\n\
.cfi_personality 0, symbol\n\
- .cfi_endproc");],
+ .cfi_endproc");])],
[libgcc_cv_cfi=yes],
[libgcc_cv_cfi=no])])
@@ -296,9 +306,10 @@ mips*-*-*)
AC_CACHE_CHECK([whether the target is hard-float],
[libgcc_cv_mips_hard_float],
[AC_COMPILE_IFELSE(
- [#ifndef __mips_hard_float
+ [AC_LANG_SOURCE([#ifndef __mips_hard_float
#error FOO
- #endif],
+ #endif
+ ])],
[libgcc_cv_mips_hard_float=yes],
[libgcc_cv_mips_hard_float=no])])
esac
@@ -395,7 +406,7 @@ powerpc*-*-linux*)
AC_CACHE_CHECK([for PowerPC ISA 2.06 to build __float128 libraries],
[libgcc_cv_powerpc_float128],
[AC_COMPILE_IFELSE(
- [vector double dadd (vector double a, vector double b) { return a + b; }],
+ [AC_LANG_SOURCE([vector double dadd (vector double a, vector double b) { return a + b; }])],
[libgcc_cv_powerpc_float128=yes],
[libgcc_cv_powerpc_float128=no])])
@@ -403,7 +414,7 @@ powerpc*-*-linux*)
AC_CACHE_CHECK([for PowerPC ISA 3.0 to build hardware __float128 libraries],
[libgcc_cv_powerpc_float128_hw],
[AC_COMPILE_IFELSE(
- [#include <sys/auxv.h>
+ [AC_LANG_SOURCE([#include <sys/auxv.h>
#ifndef AT_PLATFORM
#error "AT_PLATFORM is not defined"
#endif
@@ -418,7 +429,7 @@ powerpc*-*-linux*)
}
void *add_resolver (void) { return (void *) add; }
__float128 add_ifunc (__float128, __float128)
- __attribute__ ((__ifunc__ ("add_resolver")));],
+ __attribute__ ((__ifunc__ ("add_resolver")));])],
[libgcc_cv_powerpc_float128_hw=yes],
[libgcc_cv_powerpc_float128_hw=no])])
CFLAGS="$saved_CFLAGS"
@@ -446,7 +457,7 @@ fi
# Link with -nostartfiles -nodefaultlibs since neither are present while
# building libgcc.
case ${host} in
-i?86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
+i?86-*-solaris2* | x86_64-*-solaris2*)
cat > conftest.s <<EOF
.section .eh_frame,"a",@unwind
.zero 4
@@ -459,6 +470,21 @@ EOF
;;
esac
+# Check if Solaris linker support v2 linker mapfile syntax.
+# Link with -nostartfiles -nodefaultlibs since neither are present while
+# building libgcc.
+case ${host} in
+*-*-solaris2*)
+ solaris_ld_v2_maps=no
+ echo 'int main(void) {return 0;}' > conftest.c
+ echo '$mapfile_version 2' > conftest.map
+ if AC_TRY_COMMAND([${CC-cc} -nostartfiles -nodefaultlibs -Wl,-M,conftest.map -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
+ solaris_ld_v2_maps=yes
+ fi
+ ;;
+esac
+AC_SUBST(solaris_ld_v2_maps)
+
# Check if xtensa target is configured for windowed ABI and thus needs to use
# custom unwind code.
# This is after config.host so we can augment tmake_file.
diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
index d81c527a455..ae6328d317d 100644
--- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c
@@ -1,6 +1,6 @@
/* Specialized bits of code needed to support construction and
destruction of file-scope objects in C++ code.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
Contributed by Ron Guilmette (rfg@monkeys.com).
This file is part of GCC.
@@ -153,6 +153,8 @@ call_ ## FUNC (void) \
#if !defined(USE_TM_CLONE_REGISTRY) && defined(OBJECT_FORMAT_ELF)
# define USE_TM_CLONE_REGISTRY 1
+#elif !defined(USE_TM_CLONE_REGISTRY)
+# define USE_TM_CLONE_REGISTRY 0
#endif
/* We do not want to add the weak attribute to the declarations of these
@@ -233,11 +235,11 @@ CTOR_LIST_BEGIN;
static func_ptr force_to_data[1] __attribute__ ((__used__)) = { };
asm (__LIBGCC_CTORS_SECTION_ASM_OP__);
STATIC func_ptr __CTOR_LIST__[1]
- __attribute__ ((__used__, aligned(sizeof(func_ptr))))
+ __attribute__ ((__used__, aligned(__alignof__(func_ptr))))
= { (func_ptr) (-1) };
#else
STATIC func_ptr __CTOR_LIST__[1]
- __attribute__ ((__used__, section(".ctors"), aligned(sizeof(func_ptr))))
+ __attribute__ ((__used__, section(".ctors"), aligned(__alignof__(func_ptr))))
= { (func_ptr) (-1) };
#endif /* __CTOR_LIST__ alternatives */
@@ -246,11 +248,11 @@ DTOR_LIST_BEGIN;
#elif defined(__LIBGCC_DTORS_SECTION_ASM_OP__)
asm (__LIBGCC_DTORS_SECTION_ASM_OP__);
STATIC func_ptr __DTOR_LIST__[1]
- __attribute__ ((aligned(sizeof(func_ptr))))
+ __attribute__ ((aligned(__alignof__(func_ptr))))
= { (func_ptr) (-1) };
#else
STATIC func_ptr __DTOR_LIST__[1]
- __attribute__((section(".dtors"), aligned(sizeof(func_ptr))))
+ __attribute__((section(".dtors"), aligned(__alignof__(func_ptr))))
= { (func_ptr) (-1) };
#endif /* __DTOR_LIST__ alternatives */
#endif /* USE_INITFINI_ARRAY */
@@ -265,7 +267,7 @@ STATIC EH_FRAME_SECTION_CONST char __EH_FRAME_BEGIN__[]
#if USE_TM_CLONE_REGISTRY
STATIC func_ptr __TMC_LIST__[]
- __attribute__((used, section(".tm_clone_table"), aligned(sizeof(void*))))
+ __attribute__((used, section(".tm_clone_table"), aligned(__alignof__(void*))))
= { };
# ifdef HAVE_GAS_HIDDEN
extern func_ptr __TMC_END__[] __attribute__((__visibility__ ("hidden")));
@@ -429,9 +431,17 @@ __do_global_dtors_aux (void)
#ifdef FINI_SECTION_ASM_OP
CRT_CALL_STATIC_FUNCTION (FINI_SECTION_ASM_OP, __do_global_dtors_aux)
#elif defined (FINI_ARRAY_SECTION_ASM_OP)
+#if defined(__FDPIC__)
+__asm__("\t.equ\t__do_global_dtors_aux_alias, __do_global_dtors_aux\n");
+extern char __do_global_dtors_aux_alias;
+static void *__do_global_dtors_aux_fini_array_entry[]
+__attribute__ ((__used__, section(".fini_array"), aligned(sizeof(void *))))
+ = { &__do_global_dtors_aux_alias };
+#else /* defined(__FDPIC__) */
static func_ptr __do_global_dtors_aux_fini_array_entry[]
- __attribute__ ((__used__, section(".fini_array"), aligned(sizeof(func_ptr))))
- = { __do_global_dtors_aux };
+ __attribute__ ((__used__, section(".fini_array"),
+ aligned(__alignof__(func_ptr)))) = { __do_global_dtors_aux };
+#endif /* defined(__FDPIC__) */
#else /* !FINI_SECTION_ASM_OP && !FINI_ARRAY_SECTION_ASM_OP */
static void __attribute__((used))
__do_global_dtors_aux_1 (void)
@@ -442,8 +452,7 @@ CRT_CALL_STATIC_FUNCTION (__LIBGCC_INIT_SECTION_ASM_OP__,
__do_global_dtors_aux_1)
#endif
-#if defined(USE_EH_FRAME_REGISTRY) \
- || defined(USE_TM_CLONE_REGISTRY)
+#if defined(USE_EH_FRAME_REGISTRY) || USE_TM_CLONE_REGISTRY
/* Stick a call to __register_frame_info into the .init section. For some
reason calls with no arguments work more reliably in .init, so stick the
call in another function. */
@@ -473,9 +482,17 @@ frame_dummy (void)
#ifdef __LIBGCC_INIT_SECTION_ASM_OP__
CRT_CALL_STATIC_FUNCTION (__LIBGCC_INIT_SECTION_ASM_OP__, frame_dummy)
#else /* defined(__LIBGCC_INIT_SECTION_ASM_OP__) */
+#if defined(__FDPIC__)
+__asm__("\t.equ\t__frame_dummy_alias, frame_dummy\n");
+extern char __frame_dummy_alias;
+static void *__frame_dummy_init_array_entry[]
+__attribute__ ((__used__, section(".init_array"), aligned(sizeof(void *))))
+ = { &__frame_dummy_alias };
+#else /* defined(__FDPIC__) */
static func_ptr __frame_dummy_init_array_entry[]
- __attribute__ ((__used__, section(".init_array"), aligned(sizeof(func_ptr))))
- = { frame_dummy };
+ __attribute__ ((__used__, section(".init_array"),
+ aligned(__alignof__(func_ptr)))) = { frame_dummy };
+#endif /* defined(__FDPIC__) */
#endif /* !defined(__LIBGCC_INIT_SECTION_ASM_OP__) */
#endif /* USE_EH_FRAME_REGISTRY || USE_TM_CLONE_REGISTRY */
@@ -544,8 +561,7 @@ __do_global_dtors (void)
#endif
}
-#if defined(USE_EH_FRAME_REGISTRY) \
- || defined(USE_TM_CLONE_REGISTRY)
+#if defined(USE_EH_FRAME_REGISTRY) || USE_TM_CLONE_REGISTRY
/* A helper function for __do_global_ctors, which is in crtend.o. Here
in crtbegin.o, we can reference a couple of symbols not visible there.
Plus, since we're before libgcc.a, we have no problems referencing
@@ -588,11 +604,11 @@ CTOR_LIST_END;
static func_ptr force_to_data[1] __attribute__ ((__used__)) = { };
asm (__LIBGCC_CTORS_SECTION_ASM_OP__);
STATIC func_ptr __CTOR_END__[1]
- __attribute__((aligned(sizeof(func_ptr))))
+ __attribute__((aligned(__alignof__(func_ptr))))
= { (func_ptr) 0 };
#else
STATIC func_ptr __CTOR_END__[1]
- __attribute__((section(".ctors"), aligned(sizeof(func_ptr))))
+ __attribute__((section(".ctors"), aligned(__alignof__(func_ptr))))
= { (func_ptr) 0 };
#endif
@@ -607,16 +623,16 @@ func_ptr __DTOR_END__[1]
#ifndef __LIBGCC_DTORS_SECTION_ASM_OP__
section(".dtors"),
#endif
- aligned(sizeof(func_ptr)), visibility ("hidden")))
+ aligned(__alignof__(func_ptr)), visibility ("hidden")))
= { (func_ptr) 0 };
#elif defined(__LIBGCC_DTORS_SECTION_ASM_OP__)
asm (__LIBGCC_DTORS_SECTION_ASM_OP__);
STATIC func_ptr __DTOR_END__[1]
- __attribute__ ((used, aligned(sizeof(func_ptr))))
+ __attribute__ ((used, aligned(__alignof__(func_ptr))))
= { (func_ptr) 0 };
#else
STATIC func_ptr __DTOR_END__[1]
- __attribute__((used, section(".dtors"), aligned(sizeof(func_ptr))))
+ __attribute__((used, section(".dtors"), aligned(__alignof__(func_ptr))))
= { (func_ptr) 0 };
#endif
#endif /* USE_INITFINI_ARRAY */
@@ -635,7 +651,7 @@ typedef short int32;
# endif
STATIC EH_FRAME_SECTION_CONST int32 __FRAME_END__[]
__attribute__ ((used, section(__LIBGCC_EH_FRAME_SECTION_NAME__),
- aligned(sizeof(int32))))
+ aligned(__alignof__(int32))))
= { 0 };
#endif /* __LIBGCC_EH_FRAME_SECTION_NAME__ */
@@ -644,7 +660,8 @@ STATIC EH_FRAME_SECTION_CONST int32 __FRAME_END__[]
static
# endif
func_ptr __TMC_END__[]
- __attribute__((used, section(".tm_clone_table"), aligned(sizeof(void *))))
+ __attribute__((used, section(".tm_clone_table"),
+ aligned(__alignof__(void *))))
# ifdef HAVE_GAS_HIDDEN
__attribute__((__visibility__ ("hidden"))) = { };
# else
@@ -716,8 +733,7 @@ void
__do_global_ctors (void)
{
func_ptr *p;
-#if defined(USE_EH_FRAME_REGISTRY) \
- || defined(USE_TM_CLONE_REGISTRY)
+#if defined(USE_EH_FRAME_REGISTRY) || USE_TM_CLONE_REGISTRY
__do_global_ctors_1();
#endif
for (p = __CTOR_END__ - 1; *p != (func_ptr) -1; p--)
diff --git a/libgcc/dfp-bit.c b/libgcc/dfp-bit.c
index fbd75d706dd..0eefb78ede3 100644
--- a/libgcc/dfp-bit.c
+++ b/libgcc/dfp-bit.c
@@ -1,5 +1,5 @@
/* This is a software decimal floating point library.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/dfp-bit.h b/libgcc/dfp-bit.h
index 1f5c59b49f0..dc5b6daa1c0 100644
--- a/libgcc/dfp-bit.h
+++ b/libgcc/dfp-bit.h
@@ -1,5 +1,5 @@
/* Header file for dfp-bit.c.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/divmod.c b/libgcc/divmod.c
index a67cc87fbc6..9b1cfbaac8e 100644
--- a/libgcc/divmod.c
+++ b/libgcc/divmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -21,7 +21,8 @@ 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/>. */
-long udivmodsi4 ();
+extern unsigned long __udivmodsi4(unsigned long num, unsigned long den,
+ int modwanted);
long
__divsi3 (long a, long b)
@@ -41,7 +42,7 @@ __divsi3 (long a, long b)
neg = !neg;
}
- res = udivmodsi4 (a, b, 0);
+ res = __udivmodsi4 (a, b, 0);
if (neg)
res = -res;
@@ -64,7 +65,7 @@ __modsi3 (long a, long b)
if (b < 0)
b = -b;
- res = udivmodsi4 (a, b, 1);
+ res = __udivmodsi4 (a, b, 1);
if (neg)
res = -res;
diff --git a/libgcc/emutls.c b/libgcc/emutls.c
index e70cf2bac68..c725142e465 100644
--- a/libgcc/emutls.c
+++ b/libgcc/emutls.c
@@ -1,5 +1,5 @@
/* TLS emulation.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>.
This file is part of GCC.
diff --git a/libgcc/enable-execute-stack-mprotect.c b/libgcc/enable-execute-stack-mprotect.c
index 82e2f97a45f..bc98ce390ad 100644
--- a/libgcc/enable-execute-stack-mprotect.c
+++ b/libgcc/enable-execute-stack-mprotect.c
@@ -1,5 +1,5 @@
/* Implement __enable_execute_stack using mprotect(2).
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/find-symver.awk b/libgcc/find-symver.awk
index eefd4709763..8ddc179865c 100644
--- a/libgcc/find-symver.awk
+++ b/libgcc/find-symver.awk
@@ -1,5 +1,5 @@
# Extract the version of a single symbol from the version map.
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/fixed-bit.c b/libgcc/fixed-bit.c
index f50abf05ee8..c0145470647 100644
--- a/libgcc/fixed-bit.c
+++ b/libgcc/fixed-bit.c
@@ -1,5 +1,5 @@
/* This is a software fixed-point library.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/fixed-bit.h b/libgcc/fixed-bit.h
index eecb87aba41..b54840aac42 100644
--- a/libgcc/fixed-bit.h
+++ b/libgcc/fixed-bit.h
@@ -1,5 +1,5 @@
/* This is a software fixed-point library.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/fp-bit.c b/libgcc/fp-bit.c
index e7c1e3ab852..658f42c8e7c 100644
--- a/libgcc/fp-bit.c
+++ b/libgcc/fp-bit.c
@@ -1,6 +1,6 @@
/* This is a software floating point library which can be used
for targets without hardware floating point.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -316,12 +316,7 @@ pack_d (const fp_number_type *src)
/* We previously used bitfields to store the number, but this doesn't
handle little/big endian systems conveniently, so use shifts and
masks */
-#ifdef FLOAT_BIT_ORDER_MISMATCH
- dst.bits.fraction = fraction;
- dst.bits.exp = exp;
- dst.bits.sign = sign;
-#else
-# if defined TFLOAT && defined HALFFRACBITS
+#if defined TFLOAT && defined HALFFRACBITS
{
halffractype high, low, unity;
int lowsign, lowexp;
@@ -394,11 +389,10 @@ pack_d (const fp_number_type *src)
}
dst.value_raw = ((fractype) high << HALFSHIFT) | low;
}
-# else
+#else
dst.value_raw = fraction & ((((fractype)1) << FRACBITS) - (fractype)1);
dst.value_raw |= ((fractype) (exp & ((1 << EXPBITS) - 1))) << FRACBITS;
dst.value_raw |= ((fractype) (sign & 1)) << (FRACBITS | EXPBITS);
-# endif
#endif
#if defined(FLOAT_WORD_ORDER_MISMATCH) && !defined(FLOAT)
@@ -450,12 +444,7 @@ unpack_d (FLO_union_type * src, fp_number_type * dst)
src = &swapped;
#endif
-#ifdef FLOAT_BIT_ORDER_MISMATCH
- fraction = src->bits.fraction;
- exp = src->bits.exp;
- sign = src->bits.sign;
-#else
-# if defined TFLOAT && defined HALFFRACBITS
+#if defined TFLOAT && defined HALFFRACBITS
{
halffractype high, low;
@@ -498,11 +487,10 @@ unpack_d (FLO_union_type * src, fp_number_type * dst)
}
}
}
-# else
+#else
fraction = src->value_raw & ((((fractype)1) << FRACBITS) - 1);
exp = ((int)(src->value_raw >> FRACBITS)) & ((1 << EXPBITS) - 1);
sign = ((int)(src->value_raw >> (FRACBITS + EXPBITS))) & 1;
-# endif
#endif
dst->sign = sign;
diff --git a/libgcc/fp-bit.h b/libgcc/fp-bit.h
index ddc879e7165..de679bdbf37 100644
--- a/libgcc/fp-bit.h
+++ b/libgcc/fp-bit.h
@@ -1,5 +1,5 @@
/* Header file for fp-bit.c. */
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -128,10 +128,6 @@ typedef unsigned int UTItype __attribute__ ((mode (TI)));
#define NO_DI_MODE
#endif
-#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
-#define FLOAT_BIT_ORDER_MISMATCH
-#endif
-
#if __BYTE_ORDER__ != __FLOAT_WORD_ORDER__
#define FLOAT_WORD_ORDER_MISMATCH
#endif
@@ -354,16 +350,6 @@ typedef union
# endif
#endif
-#ifdef FLOAT_BIT_ORDER_MISMATCH
- struct
- {
- fractype fraction:FRACBITS __attribute__ ((packed));
- unsigned int exp:EXPBITS __attribute__ ((packed));
- unsigned int sign:1 __attribute__ ((packed));
- }
- bits;
-#endif
-
#ifdef _DEBUG_BITFLOAT
struct
{
diff --git a/libgcc/gbl-ctors.h b/libgcc/gbl-ctors.h
index 2a1c5665718..7ed579a36b2 100644
--- a/libgcc/gbl-ctors.h
+++ b/libgcc/gbl-ctors.h
@@ -2,7 +2,7 @@
for getting g++ file-scope static objects constructed. This file
will get included either by libgcc2.c (for systems that don't support
a .init section) or by crtstuff.c (for those that do).
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
Contributed by Ron Guilmette (rfg@segfault.us.com)
This file is part of GCC.
diff --git a/libgcc/gcov.h b/libgcc/gcov.h
index 92578304cf9..9d92edd49ba 100644
--- a/libgcc/gcov.h
+++ b/libgcc/gcov.h
@@ -1,5 +1,5 @@
/* GCOV interface routines.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/generic-morestack-thread.c b/libgcc/generic-morestack-thread.c
index a17b904cfe6..42f1ad0d971 100644
--- a/libgcc/generic-morestack-thread.c
+++ b/libgcc/generic-morestack-thread.c
@@ -1,5 +1,5 @@
/* Thread library support for -fsplit-stack. */
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Ian Lance Taylor <iant@google.com>.
This file is part of GCC.
@@ -29,7 +29,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "tm.h"
#include "libgcc_tm.h"
-/* If inhibit_libc is defined, we can not compile this file. The
+/* If inhibit_libc is defined, we cannot compile this file. The
effect is that people will not be able to use -fsplit-stack. That
is much better than failing the build particularly since people
will want to define inhibit_libc while building a compiler which
diff --git a/libgcc/generic-morestack.c b/libgcc/generic-morestack.c
index d70ca0922ce..2dc373305fb 100644
--- a/libgcc/generic-morestack.c
+++ b/libgcc/generic-morestack.c
@@ -1,5 +1,5 @@
/* Library support for -fsplit-stack. */
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Ian Lance Taylor <iant@google.com>.
This file is part of GCC.
@@ -23,6 +23,8 @@ 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/>. */
+#pragma GCC optimize ("no-isolate-erroneous-paths-dereference")
+
/* powerpc 32-bit not supported. */
#if !defined __powerpc__ || defined __powerpc64__
@@ -32,7 +34,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "tm.h"
#include "libgcc_tm.h"
-/* If inhibit_libc is defined, we can not compile this file. The
+/* If inhibit_libc is defined, we cannot compile this file. The
effect is that people will not be able to use -fsplit-stack. That
is much better than failing the build particularly since people
will want to define inhibit_libc while building a compiler which
diff --git a/libgcc/generic-morestack.h b/libgcc/generic-morestack.h
index d93300f1779..9672ba4b8fe 100644
--- a/libgcc/generic-morestack.h
+++ b/libgcc/generic-morestack.h
@@ -1,5 +1,5 @@
/* Library support for -fsplit-stack. */
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Ian Lance Taylor <iant@google.com>.
This file is part of GCC.
diff --git a/libgcc/gthr-posix.h b/libgcc/gthr-posix.h
index e2f952f6c1c..88cbc23937e 100644
--- a/libgcc/gthr-posix.h
+++ b/libgcc/gthr-posix.h
@@ -1,6 +1,6 @@
/* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -87,7 +87,8 @@ typedef struct timespec __gthread_time_t;
# define __gthrw_pragma(pragma)
# endif
# define __gthrw2(name,name2,type) \
- static __typeof(type) name __attribute__ ((__weakref__(#name2))); \
+ static __typeof(type) name \
+ __attribute__ ((__weakref__(#name2), __copy__ (type))); \
__gthrw_pragma(weak type)
# define __gthrw_(name) __gthrw_ ## name
#else
diff --git a/libgcc/gthr-single.h b/libgcc/gthr-single.h
index d8bd5138fa3..d4945ab75cd 100644
--- a/libgcc/gthr-single.h
+++ b/libgcc/gthr-single.h
@@ -1,6 +1,6 @@
/* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/gthr.h b/libgcc/gthr.h
index 88b0178f9e3..67826419882 100644
--- a/libgcc/gthr.h
+++ b/libgcc/gthr.h
@@ -1,6 +1,6 @@
/* Threads compatibility routines for libgcc2. */
/* Compile this one with gcc. */
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/libgcc-std.ver.in b/libgcc/libgcc-std.ver.in
index 2f19ff70f98..d5352b6f74e 100644
--- a/libgcc/libgcc-std.ver.in
+++ b/libgcc/libgcc-std.ver.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/libgcc2.c b/libgcc/libgcc2.c
index f418f3a354d..763b5fabd51 100644
--- a/libgcc/libgcc2.c
+++ b/libgcc/libgcc2.c
@@ -1,6 +1,6 @@
/* More subroutines needed by GCC output code on some machines. */
/* Compile this one with gcc. */
-/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -1684,7 +1684,7 @@ FUNC (DWtype u)
/* No leading bits means u == minimum. */
if (count == 0)
- return -(Wtype_MAXp1_F * (Wtype_MAXp1_F / 2));
+ return Wtype_MAXp1_F * (FSTYPE) (hi | ((UWtype) u != 0));
shift = 1 + W_TYPE_SIZE - count;
@@ -1939,15 +1939,9 @@ NAME (TYPE x, int m)
#define CONCAT2(A,B) _CONCAT2(A,B)
#define _CONCAT2(A,B) A##B
-/* All of these would be present in a full C99 implementation of <math.h>
- and <complex.h>. Our problem is that only a few systems have such full
- implementations. Further, libgcc_s.so isn't currently linked against
- libm.so, and even for systems that do provide full C99, the extra overhead
- of all programs using libgcc having to link against libm. So avoid it. */
-
-#define isnan(x) __builtin_expect ((x) != (x), 0)
-#define isfinite(x) __builtin_expect (!isnan((x) - (x)), 1)
-#define isinf(x) __builtin_expect (!isnan(x) & !isfinite(x), 0)
+#define isnan(x) __builtin_isnan (x)
+#define isfinite(x) __builtin_isfinite (x)
+#define isinf(x) __builtin_isinf (x)
#define INFINITY CONCAT2(__builtin_huge_val, CEXT) ()
#define I 1i
@@ -2168,11 +2162,14 @@ __eprintf (const char *string, const char *expression,
/* Clear part of an instruction cache. */
void
-__clear_cache (char *beg __attribute__((__unused__)),
- char *end __attribute__((__unused__)))
+__clear_cache (void *beg __attribute__((__unused__)),
+ void *end __attribute__((__unused__)))
{
#ifdef CLEAR_INSN_CACHE
- CLEAR_INSN_CACHE (beg, end);
+ /* Cast the void* pointers to char* as some implementations
+ of the macro assume the pointers can be subtracted from
+ one another. */
+ CLEAR_INSN_CACHE ((char *) beg, (char *) end);
#endif /* CLEAR_INSN_CACHE */
}
diff --git a/libgcc/libgcc2.h b/libgcc/libgcc2.h
index 408dbe3812c..d7988f1dd78 100644
--- a/libgcc/libgcc2.h
+++ b/libgcc/libgcc2.h
@@ -1,5 +1,5 @@
/* Header file for libgcc2.c. */
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#endif
extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
-extern void __clear_cache (char *, char *);
+extern void __clear_cache (void *, void *);
extern void __eprintf (const char *, const char *, unsigned int, const char *)
__attribute__ ((__noreturn__));
diff --git a/libgcc/libgcov-driver-system.c b/libgcc/libgcov-driver-system.c
index 8c1fef00456..7d48a1f87d8 100644
--- a/libgcc/libgcov-driver-system.c
+++ b/libgcc/libgcov-driver-system.c
@@ -1,6 +1,6 @@
/* Routines required for instrumenting a program. */
/* Compile this one with gcc. */
-/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -186,13 +186,14 @@ replace_filename_variables (char *filename)
/* Concat beginning of the path, replacement and
ending of the path. */
unsigned end = length - (p - filename);
- unsigned repl_length = strlen (replacement);
+ unsigned repl_length = replacement != NULL ? strlen (replacement) : 0;
char *buffer = (char *)xmalloc (start + end + repl_length + 1);
char *buffer_ptr = buffer;
buffer_ptr = (char *)memcpy (buffer_ptr, filename, start);
buffer_ptr += start;
- buffer_ptr = (char *)memcpy (buffer_ptr, replacement, repl_length);
+ if (replacement != NULL)
+ buffer_ptr = (char *)memcpy (buffer_ptr, replacement, repl_length);
buffer_ptr += repl_length;
buffer_ptr = (char *)memcpy (buffer_ptr, p, end);
buffer_ptr += end;
@@ -262,10 +263,8 @@ static int
gcov_exit_open_gcda_file (struct gcov_info *gi_ptr,
struct gcov_filename *gf)
{
- const char *fname = gi_ptr->filename;
int append_slash = 0;
-
- fname = gi_ptr->filename;
+ const char *fname = gi_ptr->filename;
/* Build relocated filename, stripping off leading
directories from the initial filename if requested. */
diff --git a/libgcc/libgcov-driver.c b/libgcc/libgcov-driver.c
index 1f2c4a74298..f03868e34bb 100644
--- a/libgcc/libgcov-driver.c
+++ b/libgcc/libgcov-driver.c
@@ -1,6 +1,6 @@
/* Routines required for instrumenting a program. */
/* Compile this one with gcc. */
-/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -24,6 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
#include "libgcov.h"
+#include "gcov-io.h"
#if defined(inhibit_libc)
/* If libc and its header files are not available, provide dummy functions. */
@@ -52,6 +53,8 @@ static void gcov_error_exit (void);
#include "gcov-io.c"
+#define GCOV_PROF_PREFIX "libgcov profiling error:%s:"
+
struct gcov_fn_buffer
{
struct gcov_fn_buffer *next;
@@ -150,29 +153,31 @@ buffer_fn_data (const char *filename, const struct gcov_info *gi_ptr,
return &fn_buffer->next;
fail:
- gcov_error ("profiling:%s:Function %u %s %u \n", filename, fn_ix,
+ gcov_error (GCOV_PROF_PREFIX "Function %u %s %u \n", filename, fn_ix,
len ? "cannot allocate" : "counter mismatch", len ? len : ix);
return (struct gcov_fn_buffer **)free_fn_data (gi_ptr, fn_buffer, ix);
}
-/* Add an unsigned value to the current crc */
+/* Convert VERSION into a string description and return the it.
+ BUFFER is used for storage of the string. The code should be
+ aligned wit gcov-iov.c. */
-static gcov_unsigned_t
-crc32_unsigned (gcov_unsigned_t crc32, gcov_unsigned_t value)
+static char *
+gcov_version_string (char *buffer, char version[4])
{
- unsigned ix;
-
- for (ix = 32; ix--; value <<= 1)
+ if (version[0] < 'A' || version[0] > 'Z'
+ || version[1] < '0' || version[1] > '9'
+ || version[2] < '0' || version[2] > '9')
+ sprintf (buffer, "(unknown)");
+ else
{
- unsigned feedback;
-
- feedback = (value ^ crc32) & 0x80000000 ? 0x04c11db7 : 0;
- crc32 <<= 1;
- crc32 ^= feedback;
+ unsigned major = 10 * (version[0] - 'A') + (version[1] - '0');
+ unsigned minor = version[2] - '0';
+ sprintf (buffer, "%u.%u (%s)", major, minor,
+ version[3] == '*' ? "release" : "experimental");
}
-
- return crc32;
+ return buffer;
}
/* Check if VERSION of the info block PTR matches libgcov one.
@@ -187,128 +192,23 @@ gcov_version (struct gcov_info *ptr, gcov_unsigned_t version,
if (version != GCOV_VERSION)
{
char v[4], e[4];
+ char version_string[128], expected_string[128];
GCOV_UNSIGNED2STRING (v, version);
GCOV_UNSIGNED2STRING (e, GCOV_VERSION);
- gcov_error ("profiling:%s:Version mismatch - expected %.4s got %.4s\n",
- filename? filename : ptr->filename, e, v);
+ gcov_error (GCOV_PROF_PREFIX "Version mismatch - expected %s (%.4s) "
+ "got %s (%.4s)\n",
+ filename? filename : ptr->filename,
+ gcov_version_string (expected_string, e), e,
+ gcov_version_string (version_string, v), v);
return 0;
}
return 1;
}
-/* Insert counter VALUE into HISTOGRAM. */
-
-static void
-gcov_histogram_insert(gcov_bucket_type *histogram, gcov_type value)
-{
- unsigned i;
-
- i = gcov_histo_index(value);
- histogram[i].num_counters++;
- histogram[i].cum_value += value;
- if (value < histogram[i].min_value)
- histogram[i].min_value = value;
-}
-
-/* Computes a histogram of the arc counters to place in the summary SUM. */
-
-static void
-gcov_compute_histogram (struct gcov_info *list, struct gcov_summary *sum)
-{
- struct gcov_info *gi_ptr;
- const struct gcov_fn_info *gfi_ptr;
- const struct gcov_ctr_info *ci_ptr;
- unsigned f_ix, ix;
- int h_ix;
-
- /* First check if there are any counts recorded for this counter. */
- if (!sum->num)
- return;
-
- for (h_ix = 0; h_ix < GCOV_HISTOGRAM_SIZE; h_ix++)
- {
- sum->histogram[h_ix].num_counters = 0;
- sum->histogram[h_ix].min_value = sum->run_max;
- sum->histogram[h_ix].cum_value = 0;
- }
-
- /* Walk through all the per-object structures and record each of
- the count values in histogram. */
- for (gi_ptr = list; gi_ptr; gi_ptr = gi_ptr->next)
- {
- for (f_ix = 0; f_ix != gi_ptr->n_functions; f_ix++)
- {
- gfi_ptr = gi_ptr->functions[f_ix];
-
- if (!gfi_ptr || gfi_ptr->key != gi_ptr)
- continue;
-
- ci_ptr = &gfi_ptr->ctrs[0];
- for (ix = 0; ix < ci_ptr->num; ix++)
- gcov_histogram_insert (sum->histogram, ci_ptr->values[ix]);
- }
- }
-}
-
/* buffer for the fn_data from another program. */
static struct gcov_fn_buffer *fn_buffer;
-/* buffer for summary from other programs to be written out. */
-static struct gcov_summary_buffer *sum_buffer;
-
-/* This function computes the program level summary and the histo-gram.
- It computes and returns CRC32 and stored summary in THIS_PRG. */
-
-#if !IN_GCOV_TOOL
-static
-#endif
-gcov_unsigned_t
-compute_summary (struct gcov_info *list, struct gcov_summary *this_prg)
-{
- struct gcov_info *gi_ptr;
- const struct gcov_fn_info *gfi_ptr;
- const struct gcov_ctr_info *ci_ptr;
- int f_ix;
- gcov_unsigned_t c_num;
- gcov_unsigned_t crc32 = 0;
-
- /* Find the totals for this execution. */
- memset (this_prg, 0, sizeof (*this_prg));
- for (gi_ptr = list; gi_ptr; gi_ptr = gi_ptr->next)
- {
- crc32 = crc32_unsigned (crc32, gi_ptr->stamp);
- crc32 = crc32_unsigned (crc32, gi_ptr->n_functions);
-
- for (f_ix = 0; (unsigned)f_ix != gi_ptr->n_functions; f_ix++)
- {
- gfi_ptr = gi_ptr->functions[f_ix];
-
- if (gfi_ptr && gfi_ptr->key != gi_ptr)
- gfi_ptr = 0;
-
- crc32 = crc32_unsigned (crc32, gfi_ptr ? gfi_ptr->cfg_checksum : 0);
- crc32 = crc32_unsigned (crc32,
- gfi_ptr ? gfi_ptr->lineno_checksum : 0);
- if (!gfi_ptr)
- continue;
-
- ci_ptr = gfi_ptr->ctrs;
- this_prg->num += ci_ptr->num;
- crc32 = crc32_unsigned (crc32, ci_ptr->num);
-
- for (c_num = 0; c_num < ci_ptr->num; c_num++)
- {
- this_prg->sum_all += ci_ptr->values[c_num];
- if (this_prg->run_max < ci_ptr->values[c_num])
- this_prg->run_max = ci_ptr->values[c_num];
- }
- ci_ptr++;
- }
- }
- gcov_compute_histogram (list, this_prg);
- return crc32;
-}
/* Including system dependent components. */
#include "libgcov-driver-system.c"
@@ -320,18 +220,13 @@ compute_summary (struct gcov_info *list, struct gcov_summary *this_prg)
static int
merge_one_data (const char *filename,
struct gcov_info *gi_ptr,
- struct gcov_summary *prg_p,
- struct gcov_summary *this_prg,
- gcov_position_t *summary_pos_p,
- gcov_position_t *eof_pos_p,
- gcov_unsigned_t crc32)
+ struct gcov_summary *summary)
{
gcov_unsigned_t tag, length;
unsigned t_ix;
- int f_ix;
+ int f_ix = -1;
int error = 0;
struct gcov_fn_buffer **fn_tail = &fn_buffer;
- struct gcov_summary_buffer **sum_tail = &sum_buffer;
length = gcov_read_unsigned ();
if (!gcov_version (gi_ptr, length, filename))
@@ -341,51 +236,19 @@ merge_one_data (const char *filename,
if (length != gi_ptr->stamp)
{
/* Read from a different compilation. Overwrite the file. */
- gcov_error ("profiling:%s:overwriting an existing profile data "
+ gcov_error (GCOV_PROF_PREFIX "overwriting an existing profile data "
"with a different timestamp\n", filename);
return 0;
}
- /* Look for program summary. */
- for (f_ix = 0;;)
- {
- struct gcov_summary tmp;
-
- *eof_pos_p = gcov_position ();
- tag = gcov_read_unsigned ();
- if (tag != GCOV_TAG_PROGRAM_SUMMARY)
- break;
-
- f_ix--;
- length = gcov_read_unsigned ();
- gcov_read_summary (&tmp);
- if ((error = gcov_is_error ()))
- goto read_error;
- if (*summary_pos_p)
- {
- /* Save all summaries after the one that will be
- merged into below. These will need to be rewritten
- as histogram merging may change the number of non-zero
- histogram entries that will be emitted, and thus the
- size of the merged summary. */
- (*sum_tail) = (struct gcov_summary_buffer *)
- xmalloc (sizeof(struct gcov_summary_buffer));
- (*sum_tail)->summary = tmp;
- (*sum_tail)->next = 0;
- sum_tail = &((*sum_tail)->next);
- goto next_summary;
- }
- if (tmp.checksum != crc32)
- goto next_summary;
-
- if (tmp.num != this_prg->num)
- goto next_summary;
- *prg_p = tmp;
- *summary_pos_p = *eof_pos_p;
-
- next_summary:;
- }
+ tag = gcov_read_unsigned ();
+ if (tag != GCOV_TAG_OBJECT_SUMMARY)
+ goto read_mismatch;
+ length = gcov_read_unsigned ();
+ gcc_assert (length > 0);
+ gcov_read_summary (summary);
+ tag = gcov_read_unsigned ();
/* Merge execution counts for each function. */
for (f_ix = 0; (unsigned)f_ix != gi_ptr->n_functions;
f_ix++, tag = gcov_read_unsigned ())
@@ -453,7 +316,7 @@ merge_one_data (const char *filename,
if (tag)
{
read_mismatch:;
- gcov_error ("profiling:%s:Merge mismatch for %s %u\n",
+ gcov_error (GCOV_PROF_PREFIX "Merge mismatch for %s %u\n",
filename, f_ix >= 0 ? "function" : "summary",
f_ix < 0 ? -1 - f_ix : f_ix);
return -1;
@@ -461,7 +324,7 @@ merge_one_data (const char *filename,
return 0;
read_error:
- gcov_error ("profiling:%s:%s merging\n", filename,
+ gcov_error (GCOV_PROF_PREFIX "%s merging\n", filename,
error < 0 ? "Overflow": "Error");
return -1;
}
@@ -472,38 +335,15 @@ read_error:
static void
write_one_data (const struct gcov_info *gi_ptr,
- const struct gcov_summary *prg_p,
- const gcov_position_t eof_pos,
- const gcov_position_t summary_pos)
+ const struct gcov_summary *prg_p)
{
unsigned f_ix;
- struct gcov_summary_buffer *next_sum_buffer;
-
- /* Write out the data. */
- if (!eof_pos)
- {
- gcov_write_tag_length (GCOV_DATA_MAGIC, GCOV_VERSION);
- gcov_write_unsigned (gi_ptr->stamp);
- }
- if (summary_pos)
- gcov_seek (summary_pos);
+ gcov_write_tag_length (GCOV_DATA_MAGIC, GCOV_VERSION);
+ gcov_write_unsigned (gi_ptr->stamp);
/* Generate whole program statistics. */
- gcov_write_summary (GCOV_TAG_PROGRAM_SUMMARY, prg_p);
-
- /* Rewrite all the summaries that were after the summary we merged
- into. This is necessary as the merged summary may have a different
- size due to the number of non-zero histogram entries changing after
- merging. */
-
- while (sum_buffer)
- {
- gcov_write_summary (GCOV_TAG_PROGRAM_SUMMARY, &sum_buffer->summary);
- next_sum_buffer = sum_buffer->next;
- free (sum_buffer);
- sum_buffer = next_sum_buffer;
- }
+ gcov_write_summary (GCOV_TAG_OBJECT_SUMMARY, prg_p);
/* Write execution counts for each function. */
for (f_ix = 0; f_ix != gi_ptr->n_functions; f_ix++)
@@ -562,145 +402,16 @@ write_one_data (const struct gcov_info *gi_ptr,
gcov_write_unsigned (0);
}
-/* Helper function for merging summary.
- Return -1 on error. Return 0 on success. */
-
-static int
-merge_summary (const char *filename __attribute__ ((unused)), int run_counted,
- struct gcov_summary *prg,
- struct gcov_summary *this_prg, gcov_unsigned_t crc32,
- struct gcov_summary *all_prg __attribute__ ((unused)))
-{
-#if !GCOV_LOCKED
- /* summary for all instances of program. */
- struct gcov_summary *all;
-#endif
-
- /* Merge the summary. */
- int first = !prg->runs;
-
- if (!run_counted)
- prg->runs++;
- if (first)
- prg->num = this_prg->num;
- prg->sum_all += this_prg->sum_all;
- if (prg->run_max < this_prg->run_max)
- prg->run_max = this_prg->run_max;
- prg->sum_max += this_prg->run_max;
- if (first)
- memcpy (prg->histogram, this_prg->histogram,
- sizeof (gcov_bucket_type) * GCOV_HISTOGRAM_SIZE);
- else
- gcov_histogram_merge (prg->histogram, this_prg->histogram);
-#if !GCOV_LOCKED
- all = all_prg;
- if (!all->runs && prg->runs)
- {
- all->num = prg->num;
- all->runs = prg->runs;
- all->sum_all = prg->sum_all;
- all->run_max = prg->run_max;
- all->sum_max = prg->sum_max;
- }
- else if (!all_prg->checksum
- /* Don't compare the histograms, which may have slight
- variations depending on the order they were updated
- due to the truncating integer divides used in the
- merge. */
- && (all->num != prg->num
- || all->runs != prg->runs
- || all->sum_all != prg->sum_all
- || all->run_max != prg->run_max
- || all->sum_max != prg->sum_max))
- {
- gcov_error ("profiling:%s:Data file mismatch - some "
- "data files may have been concurrently "
- "updated without locking support\n", filename);
- all_prg->checksum = ~0u;
- }
-#endif
-
- prg->checksum = crc32;
-
- return 0;
-}
-
-
-/* Sort N entries in VALUE_ARRAY in descending order.
- Each entry in VALUE_ARRAY has two values. The sorting
- is based on the second value. */
-
-GCOV_LINKAGE void
-gcov_sort_n_vals (gcov_type *value_array, int n)
-{
- int j, k;
-
- for (j = 2; j < n; j += 2)
- {
- gcov_type cur_ent[2];
-
- cur_ent[0] = value_array[j];
- cur_ent[1] = value_array[j + 1];
- k = j - 2;
- while (k >= 0 && value_array[k + 1] < cur_ent[1])
- {
- value_array[k + 2] = value_array[k];
- value_array[k + 3] = value_array[k+1];
- k -= 2;
- }
- value_array[k + 2] = cur_ent[0];
- value_array[k + 3] = cur_ent[1];
- }
-}
-
-/* Sort the profile counters for all indirect call sites. Counters
- for each call site are allocated in array COUNTERS. */
-
-static void
-gcov_sort_icall_topn_counter (const struct gcov_ctr_info *counters)
-{
- int i;
- gcov_type *values;
- int n = counters->num;
-
- gcc_assert (!(n % GCOV_ICALL_TOPN_NCOUNTS));
- values = counters->values;
-
- for (i = 0; i < n; i += GCOV_ICALL_TOPN_NCOUNTS)
- {
- gcov_type *value_array = &values[i + 1];
- gcov_sort_n_vals (value_array, GCOV_ICALL_TOPN_NCOUNTS - 1);
- }
-}
-
-/* Sort topn indirect_call profile counters in GI_PTR. */
+/* Helper function for merging summary. */
static void
-gcov_sort_topn_counter_arrays (const struct gcov_info *gi_ptr)
+merge_summary (int run_counted, struct gcov_summary *summary,
+ gcov_type run_max)
{
- unsigned int i;
- int f_ix;
- const struct gcov_fn_info *gfi_ptr;
- const struct gcov_ctr_info *ci_ptr;
-
- if (!gi_ptr->merge[GCOV_COUNTER_ICALL_TOPNV])
- return;
-
- for (f_ix = 0; (unsigned)f_ix != gi_ptr->n_functions; f_ix++)
+ if (!run_counted)
{
- gfi_ptr = gi_ptr->functions[f_ix];
- ci_ptr = gfi_ptr->ctrs;
- for (i = 0; i < GCOV_COUNTERS; i++)
- {
- if (!gi_ptr->merge[i])
- continue;
- if (i == GCOV_COUNTER_ICALL_TOPNV)
- {
- gcov_sort_icall_topn_counter (ci_ptr);
- break;
- }
- ci_ptr++;
- }
+ summary->runs++;
+ summary->sum_max += run_max;
}
}
@@ -713,20 +424,13 @@ gcov_sort_topn_counter_arrays (const struct gcov_info *gi_ptr)
static void
dump_one_gcov (struct gcov_info *gi_ptr, struct gcov_filename *gf,
- unsigned run_counted,
- gcov_unsigned_t crc32, struct gcov_summary *all_prg,
- struct gcov_summary *this_prg)
+ unsigned run_counted, gcov_type run_max)
{
- struct gcov_summary prg; /* summary for this object over all program. */
+ struct gcov_summary summary = {};
int error;
gcov_unsigned_t tag;
- gcov_position_t summary_pos = 0;
- gcov_position_t eof_pos = 0;
fn_buffer = 0;
- sum_buffer = 0;
-
- gcov_sort_topn_counter_arrays (gi_ptr);
error = gcov_exit_open_gcda_file (gi_ptr, gf);
if (error == -1)
@@ -738,29 +442,20 @@ dump_one_gcov (struct gcov_info *gi_ptr, struct gcov_filename *gf,
/* Merge data from file. */
if (tag != GCOV_DATA_MAGIC)
{
- gcov_error ("profiling:%s:Not a gcov data file\n", gf->filename);
+ gcov_error (GCOV_PROF_PREFIX "Not a gcov data file\n",
+ gf->filename);
goto read_fatal;
}
- error = merge_one_data (gf->filename, gi_ptr, &prg, this_prg,
- &summary_pos, &eof_pos, crc32);
+ error = merge_one_data (gf->filename, gi_ptr, &summary);
if (error == -1)
goto read_fatal;
}
gcov_rewrite ();
- if (!summary_pos)
- {
- memset (&prg, 0, sizeof (prg));
- summary_pos = eof_pos;
- }
-
- error = merge_summary (gf->filename, run_counted, &prg, this_prg,
- crc32, all_prg);
- if (error == -1)
- goto read_fatal;
+ merge_summary (run_counted, &summary, run_max);
- write_one_data (gi_ptr, &prg, eof_pos, summary_pos);
+ write_one_data (gi_ptr, &summary);
/* fall through */
read_fatal:;
@@ -769,8 +464,8 @@ read_fatal:;
if ((error = gcov_close ()))
gcov_error (error < 0 ?
- "profiling:%s:Overflow writing\n" :
- "profiling:%s:Error writing\n",
+ GCOV_PROF_PREFIX "Overflow writing\n" :
+ GCOV_PROF_PREFIX "Error writing\n",
gf->filename);
}
@@ -787,21 +482,26 @@ gcov_do_dump (struct gcov_info *list, int run_counted)
{
struct gcov_info *gi_ptr;
struct gcov_filename gf;
- gcov_unsigned_t crc32;
- struct gcov_summary all_prg;
- struct gcov_summary this_prg;
- crc32 = compute_summary (list, &this_prg);
+ /* Compute run_max of this program run. */
+ gcov_type run_max = 0;
+ for (gi_ptr = list; gi_ptr; gi_ptr = gi_ptr->next)
+ for (unsigned f_ix = 0; (unsigned)f_ix != gi_ptr->n_functions; f_ix++)
+ {
+ const struct gcov_ctr_info *cinfo
+ = &gi_ptr->functions[f_ix]->ctrs[GCOV_COUNTER_ARCS];
+
+ for (unsigned i = 0; i < cinfo->num; i++)
+ if (run_max < cinfo->values[i])
+ run_max = cinfo->values[i];
+ }
allocate_filename_struct (&gf);
-#if !GCOV_LOCKED
- memset (&all_prg, 0, sizeof (all_prg));
-#endif
/* Now merge each file. */
for (gi_ptr = list; gi_ptr; gi_ptr = gi_ptr->next)
{
- dump_one_gcov (gi_ptr, &gf, run_counted, crc32, &all_prg, &this_prg);
+ dump_one_gcov (gi_ptr, &gf, run_counted, run_max);
free (gf.filename);
}
diff --git a/libgcc/libgcov-interface.c b/libgcc/libgcov-interface.c
index 227a5a04ccb..b3ed7433f78 100644
--- a/libgcc/libgcov-interface.c
+++ b/libgcc/libgcov-interface.c
@@ -1,6 +1,6 @@
/* Routines required for instrumenting a program. */
/* Compile this one with gcc. */
-/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/libgcov-merge.c b/libgcc/libgcov-merge.c
index 3ab509a8d7f..15f27aedb55 100644
--- a/libgcc/libgcov-merge.c
+++ b/libgcc/libgcov-merge.c
@@ -1,6 +1,6 @@
/* Routines required for instrumenting a program. */
/* Compile this one with gcc. */
-/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -33,9 +33,9 @@ void __gcov_merge_add (gcov_type *counters __attribute__ ((unused)),
unsigned n_counters __attribute__ ((unused))) {}
#endif
-#ifdef L_gcov_merge_single
-void __gcov_merge_single (gcov_type *counters __attribute__ ((unused)),
- unsigned n_counters __attribute__ ((unused))) {}
+#ifdef L_gcov_merge_topn
+void __gcov_merge_topn (gcov_type *counters __attribute__ ((unused)),
+ unsigned n_counters __attribute__ ((unused))) {}
#endif
#else
@@ -84,104 +84,78 @@ __gcov_merge_time_profile (gcov_type *counters, unsigned n_counters)
}
#endif /* L_gcov_merge_time_profile */
-#ifdef L_gcov_merge_single
-/* The profile merging function for choosing the most common value.
- It is given an array COUNTERS of N_COUNTERS old counters and it
- reads the same number of counters from the gcov file. The counters
- are split into 3-tuples where the members of the tuple have
- meanings:
+#ifdef L_gcov_merge_topn
- -- the stored candidate on the most common value of the measured entity
- -- counter
- -- total number of evaluations of the value */
-void
-__gcov_merge_single (gcov_type *counters, unsigned n_counters)
+static void
+merge_topn_values_set (gcov_type *counters)
{
- unsigned i, n_measures;
- gcov_type value, counter, all;
+ /* First value is number of total executions of the profiler. */
+ gcov_type all = gcov_get_counter_ignore_scaling (-1);
+ counters[0] += all;
+ ++counters;
+
+ /* Read all part values. */
+ gcov_type read_counters[2 * GCOV_TOPN_VALUES];
- gcc_assert (!(n_counters % 3));
- n_measures = n_counters / 3;
- for (i = 0; i < n_measures; i++, counters += 3)
+ for (unsigned i = 0; i < GCOV_TOPN_VALUES; i++)
{
- value = gcov_get_counter_target ();
- counter = gcov_get_counter ();
- all = gcov_get_counter ();
-
- if (counters[0] == value)
- counters[1] += counter;
- else if (counter > counters[1])
- {
- counters[0] = value;
- counters[1] = counter - counters[1];
- }
- else
- counters[1] -= counter;
- counters[2] += all;
+ read_counters[2 * i] = gcov_get_counter_target ();
+ read_counters[2 * i + 1] = gcov_get_counter_ignore_scaling (-1);
+ }
+
+ if (read_counters[1] == -1)
+ {
+ counters[1] = -1;
+ return;
+ }
+
+ for (unsigned i = 0; i < GCOV_TOPN_VALUES; i++)
+ {
+ if (read_counters[2 * i + 1] == 0)
+ return;
+
+ unsigned j;
+ for (j = 0; j < GCOV_TOPN_VALUES; j++)
+ {
+ if (counters[2 * j] == read_counters[2 * i])
+ {
+ counters[2 * j + 1] += read_counters[2 * i + 1];
+ break;
+ }
+ else if (counters[2 * j + 1] == 0)
+ {
+ counters[2 * j] += read_counters[2 * i];
+ counters[2 * j + 1] += read_counters[2 * i + 1];
+ break;
+ }
+ }
+
+ /* We haven't found a slot, bail out. */
+ if (j == GCOV_TOPN_VALUES)
+ {
+ counters[1] = -1;
+ return;
+ }
}
}
-#endif /* L_gcov_merge_single */
-#ifdef L_gcov_merge_icall_topn
-/* The profile merging function used for merging indirect call counts
- This function is given array COUNTERS of N_COUNTERS old counters and it
- reads the same number of counters from the gcov file. */
+/* The profile merging function for choosing the most common value.
+ It is given an array COUNTERS of N_COUNTERS old counters and it
+ reads the same number of counters from the gcov file. The counters
+ are split into pairs where the members of the tuple have
+ meanings:
+ -- the stored candidate on the most common value of the measured entity
+ -- counter
+ */
void
-__gcov_merge_icall_topn (gcov_type *counters, unsigned n_counters)
+__gcov_merge_topn (gcov_type *counters, unsigned n_counters)
{
- unsigned i, j, k, m;
+ gcc_assert (!(n_counters % GCOV_TOPN_VALUES_COUNTERS));
- gcc_assert (!(n_counters % GCOV_ICALL_TOPN_NCOUNTS));
- for (i = 0; i < n_counters; i += GCOV_ICALL_TOPN_NCOUNTS)
- {
- gcov_type *value_array = &counters[i + 1];
- unsigned tmp_size = 2 * (GCOV_ICALL_TOPN_NCOUNTS - 1);
- gcov_type *tmp_array
- = (gcov_type *) alloca (tmp_size * sizeof (gcov_type));
-
- for (j = 0; j < tmp_size; j++)
- tmp_array[j] = 0;
-
- for (j = 0; j < GCOV_ICALL_TOPN_NCOUNTS - 1; j += 2)
- {
- tmp_array[j] = value_array[j];
- tmp_array[j + 1] = value_array [j + 1];
- }
-
- /* Skip the number_of_eviction entry. */
- gcov_get_counter ();
- for (k = 0; k < GCOV_ICALL_TOPN_NCOUNTS - 1; k += 2)
- {
- int found = 0;
- gcov_type global_id = gcov_get_counter_target ();
- gcov_type call_count = gcov_get_counter ();
- for (m = 0; m < j; m += 2)
- {
- if (tmp_array[m] == global_id)
- {
- found = 1;
- tmp_array[m + 1] += call_count;
- break;
- }
- }
- if (!found)
- {
- tmp_array[j] = global_id;
- tmp_array[j + 1] = call_count;
- j += 2;
- }
- }
- /* Now sort the temp array */
- gcov_sort_n_vals (tmp_array, j);
-
- /* Now copy back the top half of the temp array */
- for (k = 0; k < GCOV_ICALL_TOPN_NCOUNTS - 1; k += 2)
- {
- value_array[k] = tmp_array[k];
- value_array[k + 1] = tmp_array[k + 1];
- }
- }
+ for (unsigned i = 0; i < (n_counters / GCOV_TOPN_VALUES_COUNTERS); i++)
+ merge_topn_values_set (counters + (i * GCOV_TOPN_VALUES_COUNTERS));
}
-#endif /* L_gcov_merge_icall_topn */
+#endif /* L_gcov_merge_topn */
+
#endif /* inhibit_libc */
diff --git a/libgcc/libgcov-profiler.c b/libgcc/libgcov-profiler.c
index 596b35b1efd..8f877a95980 100644
--- a/libgcc/libgcov-profiler.c
+++ b/libgcc/libgcov-profiler.c
@@ -1,6 +1,6 @@
/* Routines required for instrumenting a program. */
/* Compile this one with gcc. */
-/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -106,46 +106,61 @@ __gcov_pow2_profiler_atomic (gcov_type *counters, gcov_type value)
#endif
-/* Tries to determine the most common value among its inputs. Checks if the
- value stored in COUNTERS[0] matches VALUE. If this is the case, COUNTERS[1]
- is incremented. If this is not the case and COUNTERS[1] is not zero,
- COUNTERS[1] is decremented. Otherwise COUNTERS[1] is set to one and
- VALUE is stored to COUNTERS[0]. This algorithm guarantees that if this
- function is called more than 50% of the time with one value, this value
- will be in COUNTERS[0] in the end.
-
- In any case, COUNTERS[2] is incremented. If USE_ATOMIC is set to 1,
- COUNTERS[2] is updated with an atomic instruction. */
+/* Tries to determine N most commons value among its inputs. */
static inline void
-__gcov_one_value_profiler_body (gcov_type *counters, gcov_type value,
- int use_atomic)
+__gcov_topn_values_profiler_body (gcov_type *counters, gcov_type value,
+ int use_atomic)
{
- if (value == counters[0])
- counters[1]++;
- else if (counters[1] == 0)
+ if (use_atomic)
+ __atomic_fetch_add (&counters[0], 1, __ATOMIC_RELAXED);
+ else
+ counters[0]++;
+
+ ++counters;
+
+ /* We have GCOV_TOPN_VALUES as we can keep multiple values
+ next to each other. */
+ unsigned sindex = 0;
+
+ for (unsigned i = 0; i < GCOV_TOPN_VALUES; i++)
{
- counters[1] = 1;
- counters[0] = value;
+ if (value == counters[2 * i])
+ {
+ if (use_atomic)
+ __atomic_fetch_add (&counters[2 * i + 1], 1, __ATOMIC_RELAXED);
+ else
+ counters[2 * i + 1]++;
+ return;
+ }
+ else if (counters[2 * i + 1] == 0)
+ {
+ /* We found an empty slot. */
+ counters[2 * i] = value;
+ counters[2 * i + 1] = 1;
+ return;
+ }
+
+ if (counters[2 * i + 1] < counters[2 * sindex + 1])
+ sindex = i;
}
- else
- counters[1]--;
+ /* We haven't found an empty slot, then decrement the smallest. */
if (use_atomic)
- __atomic_fetch_add (&counters[2], 1, __ATOMIC_RELAXED);
+ __atomic_fetch_sub (&counters[2 * sindex + 1], 1, __ATOMIC_RELAXED);
else
- counters[2]++;
+ counters[2 * sindex + 1]--;
}
-#ifdef L_gcov_one_value_profiler
+#ifdef L_gcov_topn_values_profiler
void
-__gcov_one_value_profiler (gcov_type *counters, gcov_type value)
+__gcov_topn_values_profiler (gcov_type *counters, gcov_type value)
{
- __gcov_one_value_profiler_body (counters, value, 0);
+ __gcov_topn_values_profiler_body (counters, value, 0);
}
#endif
-#if defined(L_gcov_one_value_profiler_atomic) && GCOV_SUPPORTS_ATOMIC
+#if defined(L_gcov_topn_values_profiler_atomic) && GCOV_SUPPORTS_ATOMIC
/* Update one value profilers (COUNTERS) for a given VALUE.
@@ -157,151 +172,13 @@ __gcov_one_value_profiler (gcov_type *counters, gcov_type value)
https://gcc.gnu.org/ml/gcc-patches/2016-08/msg00024.html. */
void
-__gcov_one_value_profiler_atomic (gcov_type *counters, gcov_type value)
+__gcov_topn_values_profiler_atomic (gcov_type *counters, gcov_type value)
{
- __gcov_one_value_profiler_body (counters, value, 1);
+ __gcov_topn_values_profiler_body (counters, value, 1);
}
#endif
-#ifdef L_gcov_indirect_call_topn_profiler
-/* Tries to keep track the most frequent N values in the counters where
- N is specified by parameter TOPN_VAL. To track top N values, 2*N counter
- entries are used.
- counter[0] --- the accumative count of the number of times one entry in
- in the counters gets evicted/replaced due to limited capacity.
- When this value reaches a threshold, the bottom N values are
- cleared.
- counter[1] through counter[2*N] records the top 2*N values collected so far.
- Each value is represented by two entries: count[2*i+1] is the ith value, and
- count[2*i+2] is the number of times the value is seen. */
-
-static void
-__gcov_topn_value_profiler_body (gcov_type *counters, gcov_type value)
-{
- unsigned i, found = 0, have_zero_count = 0;
- gcov_type *entry;
- gcov_type *lfu_entry = &counters[1];
- gcov_type *value_array = &counters[1];
- gcov_type *num_eviction = &counters[0];
- gcov_unsigned_t topn_val = GCOV_ICALL_TOPN_VAL;
-
- /* There are 2*topn_val values tracked, each value takes two slots in the
- counter array. */
- for (i = 0; i < (topn_val << 2); i += 2)
- {
- entry = &value_array[i];
- if (entry[0] == value)
- {
- entry[1]++ ;
- found = 1;
- break;
- }
- else if (entry[1] == 0)
- {
- lfu_entry = entry;
- have_zero_count = 1;
- }
- else if (entry[1] < lfu_entry[1])
- lfu_entry = entry;
- }
-
- if (found)
- return;
-
- /* lfu_entry is either an empty entry or an entry
- with lowest count, which will be evicted. */
- lfu_entry[0] = value;
- lfu_entry[1] = 1;
-
-#define GCOV_ICALL_COUNTER_CLEAR_THRESHOLD 3000
-
- /* Too many evictions -- time to clear bottom entries to
- avoid hot values bumping each other out. */
- if (!have_zero_count
- && ++*num_eviction >= GCOV_ICALL_COUNTER_CLEAR_THRESHOLD)
- {
- unsigned i, j;
- gcov_type *p, minv;
- gcov_type* tmp_cnts
- = (gcov_type *)alloca (topn_val * sizeof (gcov_type));
-
- *num_eviction = 0;
-
- for (i = 0; i < topn_val; i++)
- tmp_cnts[i] = 0;
-
- /* Find the largest topn_val values from the group of
- 2*topn_val values and put them into tmp_cnts. */
-
- for (i = 0; i < 2 * topn_val; i += 2)
- {
- p = 0;
- for (j = 0; j < topn_val; j++)
- {
- if (!p || tmp_cnts[j] < *p)
- p = &tmp_cnts[j];
- }
- if (value_array[i + 1] > *p)
- *p = value_array[i + 1];
- }
-
- minv = tmp_cnts[0];
- for (j = 1; j < topn_val; j++)
- {
- if (tmp_cnts[j] < minv)
- minv = tmp_cnts[j];
- }
- /* Zero out low value entries. */
- for (i = 0; i < 2 * topn_val; i += 2)
- {
- if (value_array[i + 1] < minv)
- {
- value_array[i] = 0;
- value_array[i + 1] = 0;
- }
- }
- }
-}
-
-/* These two variables are used to actually track caller and callee. Keep
- them in TLS memory so races are not common (they are written to often).
- The variables are set directly by GCC instrumented code, so declaration
- here must match one in tree-profile.c. */
-
-#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS)
-__thread
-#endif
-gcov_type *__gcov_indirect_call_topn_counters ATTRIBUTE_HIDDEN;
-
-#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS)
-__thread
-#endif
-void *__gcov_indirect_call_topn_callee ATTRIBUTE_HIDDEN;
-
-#ifdef TARGET_VTABLE_USES_DESCRIPTORS
-#define VTABLE_USES_DESCRIPTORS 1
-#else
-#define VTABLE_USES_DESCRIPTORS 0
-#endif
-
-/* This fucntion is instrumented at function entry to track topn indirect
- calls to CUR_FUNC. */
-
-void
-__gcov_indirect_call_topn_profiler (gcov_type value, void* cur_func)
-{
- void *callee_func = __gcov_indirect_call_topn_callee;
- /* If the C++ virtual tables contain function descriptors then one
- function may have multiple descriptors and we need to dereference
- the descriptors to see if they point to the same function. */
- if (cur_func == callee_func
- || (VTABLE_USES_DESCRIPTORS && callee_func
- && *(void **) cur_func == *(void **) callee_func))
- __gcov_topn_value_profiler_body (__gcov_indirect_call_topn_counters, value);
-}
-#endif
-
-#ifdef L_gcov_indirect_call_profiler_v2
+#ifdef L_gcov_indirect_call_profiler_v4
/* These two variables are used to actually track caller and callee. Keep
them in TLS memory so races are not common (they are written to often).
@@ -311,11 +188,7 @@ __gcov_indirect_call_topn_profiler (gcov_type value, void* cur_func)
#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS)
__thread
#endif
-void * __gcov_indirect_call_callee;
-#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS)
-__thread
-#endif
-gcov_type * __gcov_indirect_call_counters;
+struct indirect_call_tuple __gcov_indirect_call;
/* By default, the C++ compiler will use function addresses in the
vtable entries. Setting TARGET_VTABLE_USES_DESCRIPTORS to nonzero
@@ -327,17 +200,17 @@ gcov_type * __gcov_indirect_call_counters;
/* Tries to determine the most common value among its inputs. */
void
-__gcov_indirect_call_profiler_v2 (gcov_type value, void* cur_func)
+__gcov_indirect_call_profiler_v4 (gcov_type value, void* cur_func)
{
/* If the C++ virtual tables contain function descriptors then one
function may have multiple descriptors and we need to dereference
the descriptors to see if they point to the same function. */
- if (cur_func == __gcov_indirect_call_callee
- || (__LIBGCC_VTABLE_USES_DESCRIPTORS__ && __gcov_indirect_call_callee
- && *(void **) cur_func == *(void **) __gcov_indirect_call_callee))
- __gcov_one_value_profiler_body (__gcov_indirect_call_counters, value, 0);
+ if (cur_func == __gcov_indirect_call.callee
+ || (__LIBGCC_VTABLE_USES_DESCRIPTORS__
+ && *(void **) cur_func == *(void **) __gcov_indirect_call.callee))
+ __gcov_topn_values_profiler_body (__gcov_indirect_call.counters, value, 0);
- __gcov_indirect_call_callee = NULL;
+ __gcov_indirect_call.callee = NULL;
}
#endif
diff --git a/libgcc/libgcov-util.c b/libgcc/libgcov-util.c
index 37dd186beaa..32b3f82fe53 100644
--- a/libgcc/libgcov-util.c
+++ b/libgcc/libgcov-util.c
@@ -1,6 +1,6 @@
/* Utility functions for reading gcda files into in-memory
gcov_info structures and offline profile processing. */
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2019 Free Software Foundation, Inc.
Contributed by Rong Xu <xur@google.com>.
This file is part of GCC.
@@ -32,6 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "diagnostic.h"
#include "version.h"
#include "demangle.h"
+#include "gcov-io.h"
/* Borrowed from basic-block.h. */
#define RDIV(X,Y) (((X) + (Y) / 2) / (Y))
@@ -79,6 +80,8 @@ static int k_ctrs_mask[GCOV_COUNTERS];
static struct gcov_ctr_info k_ctrs[GCOV_COUNTERS];
/* Number of kind of counters that have been seen. */
static int k_ctrs_types;
+/* The object summary being processed. */
+static struct gcov_summary *curr_object_summary;
/* Merge functions for counters. */
#define DEF_GCOV_COUNTER(COUNTER, NAME, FN_TYPE) __gcov_merge ## FN_TYPE,
@@ -131,7 +134,6 @@ static const tag_format_t tag_table[] =
{GCOV_TAG_ARCS, "ARCS", tag_arcs},
{GCOV_TAG_LINES, "LINES", tag_lines},
{GCOV_TAG_OBJECT_SUMMARY, "OBJECT_SUMMARY", tag_summary},
- {GCOV_TAG_PROGRAM_SUMMARY, "PROGRAM_SUMMARY", tag_summary},
{0, NULL, NULL}
};
@@ -223,9 +225,8 @@ tag_counters (unsigned tag, unsigned length)
static void
tag_summary (unsigned tag ATTRIBUTE_UNUSED, unsigned length ATTRIBUTE_UNUSED)
{
- struct gcov_summary summary;
-
- gcov_read_summary (&summary);
+ curr_object_summary = (gcov_summary *) xcalloc (sizeof (gcov_summary), 1);
+ gcov_read_summary (curr_object_summary);
}
/* This function is called at the end of reading a gcda file.
@@ -239,7 +240,8 @@ read_gcda_finalize (struct gcov_info *obj_info)
set_fn_ctrs (curr_fn_info);
obstack_ptr_grow (&fn_info, curr_fn_info);
- /* We set the following fields: merge, n_functions, and functions. */
+ /* We set the following fields: merge, n_functions, functions
+ and summary. */
obj_info->n_functions = num_fn_info;
obj_info->functions = (const struct gcov_fn_info**) obstack_finish (&fn_info);
@@ -299,6 +301,7 @@ read_gcda_file (const char *filename)
obstack_init (&fn_info);
num_fn_info = 0;
curr_fn_info = 0;
+ curr_object_summary = NULL;
{
size_t len = strlen (filename) + 1;
char *str_dup = (char*) xmalloc (len);
@@ -329,7 +332,7 @@ read_gcda_file (const char *filename)
{
if (((mask & 0xff) != 0xff))
{
- warning (0, "%s:tag `%x' is invalid\n", filename, tag);
+ warning (0, "%s:tag %qx is invalid", filename, tag);
break;
}
tag_depth--;
@@ -344,7 +347,7 @@ read_gcda_file (const char *filename)
if (depth && depth < tag_depth)
{
if (!GCOV_TAG_IS_SUBTAG (tags[depth - 1], tag))
- warning (0, "%s:tag `%x' is incorrectly nested\n",
+ warning (0, "%s:tag %qx is incorrectly nested",
filename, tag);
}
depth = tag_depth;
@@ -359,18 +362,18 @@ read_gcda_file (const char *filename)
actual_length = gcov_position () - base;
if (actual_length > length)
- warning (0, "%s:record size mismatch %lu bytes overread\n",
+ warning (0, "%s:record size mismatch %lu bytes overread",
filename, actual_length - length);
else if (length > actual_length)
- warning (0, "%s:record size mismatch %lu bytes unread\n",
+ warning (0, "%s:record size mismatch %lu bytes unread",
filename, length - actual_length);
}
gcov_sync (base, length);
if ((error = gcov_is_error ()))
{
- warning (0, error < 0 ? "%s:counter overflow at %lu\n" :
- "%s:read error at %lu\n", filename,
+ warning (0, error < 0 ? "%s:counter overflow at %lu" :
+ "%s:read error at %lu", filename,
(long unsigned) gcov_position ());
break;
}
@@ -458,10 +461,9 @@ gcov_read_profile_dir (const char* dir_name, int recompute_summary ATTRIBUTE_UNU
#ifdef HAVE_FTW_H
ftw (".", ftw_read_file, 50);
#endif
- ret = chdir (pwd);
+ chdir (pwd);
free (pwd);
-
return gcov_info_head;;
}
@@ -678,6 +680,9 @@ gcov_profile_merge (struct gcov_info *tgt_profile, struct gcov_info *src_profile
tgt_tail = gi_ptr;
}
+ free (in_src_not_tgt);
+ free (tgt_infos);
+
return 0;
}
@@ -720,11 +725,11 @@ __gcov_time_profile_counter_op (gcov_type *counters ATTRIBUTE_UNUSED,
/* Do nothing. */
}
-/* Performing FN upon single counters. */
+/* Performing FN upon TOP N counters. */
static void
-__gcov_single_counter_op (gcov_type *counters, unsigned n_counters,
- counter_op_fn fn, void *data1, void *data2)
+__gcov_topn_counter_op (gcov_type *counters, unsigned n_counters,
+ counter_op_fn fn, void *data1, void *data2)
{
unsigned i, n_measures;
@@ -737,25 +742,6 @@ __gcov_single_counter_op (gcov_type *counters, unsigned n_counters,
}
}
-/* Performing FN upon indirect-call profile counters. */
-
-static void
-__gcov_icall_topn_counter_op (gcov_type *counters, unsigned n_counters,
- counter_op_fn fn, void *data1, void *data2)
-{
- unsigned i;
-
- gcc_assert (!(n_counters % GCOV_ICALL_TOPN_NCOUNTS));
- for (i = 0; i < n_counters; i += GCOV_ICALL_TOPN_NCOUNTS)
- {
- unsigned j;
- gcov_type *value_array = &counters[i + 1];
-
- for (j = 0; j < GCOV_ICALL_TOPN_NCOUNTS - 1; j += 2)
- value_array[j + 1] = fn (value_array[j + 1], data1, data2);
- }
-}
-
/* Scaling the counter value V by multiplying *(float*) DATA1. */
static gcov_type
@@ -892,8 +878,6 @@ calculate_2_entries (const unsigned long v1, const unsigned long v2,
}
/* Compute the overlap score between GCOV_INFO1 and GCOV_INFO2.
- SUM_1 is the sum_all for profile1 where GCOV_INFO1 belongs.
- SUM_2 is the sum_all for profile2 where GCOV_INFO2 belongs.
This function also updates cumulative score CUM_1_RESULT and
CUM_2_RESULT. */
@@ -1048,12 +1032,6 @@ struct overlap_t {
/* Cumlative overlap dscore for profile1 and profile2. */
static double overlap_sum_1, overlap_sum_2;
-/* sum_all for profile1 and profile2. */
-static gcov_type p1_sum_all, p2_sum_all;
-
-/* run_max for profile1 and profile2. */
-static gcov_type p1_run_max, p2_run_max;
-
/* The number of gcda files in the profiles. */
static unsigned gcda_files[2];
@@ -1200,10 +1178,6 @@ matched_gcov_info (const struct gcov_info *info1, const struct gcov_info *info2)
return 1;
}
-/* Defined in libgcov-driver.c. */
-extern gcov_unsigned_t compute_summary (struct gcov_info *,
- struct gcov_summary *);
-
/* Compute the overlap score of two profiles with the head of GCOV_LIST1 and
GCOV_LIST1. Return a number ranging from [0.0, 1.0], with 0.0 meaning no
match and 1.0 meaning a perfect match. */
@@ -1212,21 +1186,11 @@ static double
calculate_overlap (struct gcov_info *gcov_list1,
struct gcov_info *gcov_list2)
{
- struct gcov_summary this_prg;
unsigned list1_cnt = 0, list2_cnt= 0, all_cnt;
unsigned int i, j;
const struct gcov_info *gi_ptr;
struct overlap_t *all_infos;
- compute_summary (gcov_list1, &this_prg);
- overlap_sum_1 = (double) (this_prg.sum_all);
- p1_sum_all = this_prg.sum_all;
- p1_run_max = this_prg.run_max;
- compute_summary (gcov_list2, &this_prg);
- overlap_sum_2 = (double) (this_prg.sum_all);
- p2_sum_all = this_prg.sum_all;
- p2_run_max = this_prg.run_max;
-
for (gi_ptr = gcov_list1; gi_ptr; gi_ptr = gi_ptr->next)
list1_cnt++;
for (gi_ptr = gcov_list2; gi_ptr; gi_ptr = gi_ptr->next)
@@ -1318,6 +1282,8 @@ calculate_overlap (struct gcov_info *gcov_list1,
}
+ free (all_infos);
+
if (overlap_obj_level)
printf(" SUM:%36s overlap = %6.2f%% (%5.2f%% %5.2f%%)\n",
"", sum_val*100, sum_cum_1*100, sum_cum_2*100);
@@ -1334,10 +1300,6 @@ calculate_overlap (struct gcov_info *gcov_list1,
cold_gcda_files[1], both_cold_cnt);
printf (" zero files: %12u\t%12u\t%12u\n", zero_gcda_files[0],
zero_gcda_files[1], both_zero_cnt);
- printf (" sum_all: %12" PRId64 "\t%12" PRId64 "\n",
- p1_sum_all, p2_sum_all);
- printf (" run_max: %12" PRId64 "\t%12" PRId64 "\n",
- p1_run_max, p2_run_max);
return prg_val;
}
diff --git a/libgcc/libgcov.h b/libgcc/libgcov.h
index 21422873cf2..30a8a116fec 100644
--- a/libgcc/libgcov.h
+++ b/libgcc/libgcov.h
@@ -1,5 +1,5 @@
/* Header file for libgcov-*.c.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -102,7 +102,6 @@ typedef unsigned gcov_type_unsigned __attribute__ ((mode (QI)));
#define gcov_read_unsigned __gcov_read_unsigned
#define gcov_read_counter __gcov_read_counter
#define gcov_read_summary __gcov_read_summary
-#define gcov_sort_n_vals __gcov_sort_n_vals
#else /* IN_GCOV_TOOL */
/* About the host. */
@@ -127,10 +126,9 @@ typedef unsigned gcov_position_t;
#define L_gcov 1
#define L_gcov_merge_add 1
-#define L_gcov_merge_single 1
+#define L_gcov_merge_topn 1
#define L_gcov_merge_ior 1
#define L_gcov_merge_time_profile 1
-#define L_gcov_merge_icall_topn 1
extern gcov_type gcov_read_counter_mem ();
extern unsigned gcov_get_merge_weight ();
@@ -226,6 +224,15 @@ struct gcov_master
gcov_unsigned_t version;
struct gcov_root *root;
};
+
+struct indirect_call_tuple
+{
+ /* Callee function. */
+ void *callee;
+
+ /* Pointer to counters. */
+ gcov_type *counters;
+};
/* Exactly one of these will be active in the process. */
extern struct gcov_master __gcov_master;
@@ -252,32 +259,27 @@ extern void __gcov_merge_add (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
/* The merge function to select the minimum valid counter value. */
extern void __gcov_merge_time_profile (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
-/* The merge function to choose the most common value. */
-extern void __gcov_merge_single (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
+/* The merge function to choose the most common N values. */
+extern void __gcov_merge_topn (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
/* The merge function that just ors the counters together. */
extern void __gcov_merge_ior (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
-/* The merge function is used for topn indirect call counters. */
-extern void __gcov_merge_icall_topn (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
-
/* The profiler functions. */
extern void __gcov_interval_profiler (gcov_type *, gcov_type, int, unsigned);
extern void __gcov_interval_profiler_atomic (gcov_type *, gcov_type, int,
unsigned);
extern void __gcov_pow2_profiler (gcov_type *, gcov_type);
extern void __gcov_pow2_profiler_atomic (gcov_type *, gcov_type);
-extern void __gcov_one_value_profiler (gcov_type *, gcov_type);
-extern void __gcov_one_value_profiler_atomic (gcov_type *, gcov_type);
-extern void __gcov_indirect_call_profiler_v2 (gcov_type, void *);
+extern void __gcov_topn_values_profiler (gcov_type *, gcov_type);
+extern void __gcov_topn_values_profiler_atomic (gcov_type *, gcov_type);
+extern void __gcov_indirect_call_profiler_v4 (gcov_type, void *);
extern void __gcov_time_profiler (gcov_type *);
extern void __gcov_time_profiler_atomic (gcov_type *);
extern void __gcov_average_profiler (gcov_type *, gcov_type);
extern void __gcov_average_profiler_atomic (gcov_type *, gcov_type);
extern void __gcov_ior_profiler (gcov_type *, gcov_type);
extern void __gcov_ior_profiler_atomic (gcov_type *, gcov_type);
-extern void __gcov_indirect_call_topn_profiler (gcov_type, void *);
-extern void gcov_sort_n_vals (gcov_type *, int);
#ifndef inhibit_libc
/* The wrappers around some library functions.. */
@@ -322,6 +324,29 @@ gcov_get_counter (void)
#endif
}
+/* Similar function as gcov_get_counter(), but do not scale
+ when read value is equal to IGNORE_SCALING. */
+
+static inline gcov_type
+gcov_get_counter_ignore_scaling (gcov_type ignore_scaling ATTRIBUTE_UNUSED)
+{
+#ifndef IN_GCOV_TOOL
+ /* This version is for reading count values in libgcov runtime:
+ we read from gcda files. */
+
+ return gcov_read_counter ();
+#else
+ /* This version is for gcov-tool. We read the value from memory and
+ multiply it by the merge weight. */
+
+ gcov_type v = gcov_read_counter_mem ();
+ if (v != ignore_scaling)
+ v *= gcov_get_merge_weight ();
+
+ return v;
+#endif
+}
+
/* Similar function as gcov_get_counter(), but handles target address
counters. */
diff --git a/libgcc/mkheader.sh b/libgcc/mkheader.sh
index f44bc61181d..4500fa885f6 100755
--- a/libgcc/mkheader.sh
+++ b/libgcc/mkheader.sh
@@ -1,6 +1,6 @@
#! /bin/sh
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2019 Free Software Foundation, Inc.
# This file is part of GCC.
# GCC is free software; you can redistribute it and/or modify
diff --git a/libgcc/mkmap-flat.awk b/libgcc/mkmap-flat.awk
index 607b076cf92..86043de45fd 100644
--- a/libgcc/mkmap-flat.awk
+++ b/libgcc/mkmap-flat.awk
@@ -1,5 +1,5 @@
# Generate a flat list of symbols to export.
-# Copyright (C) 2007-2018 Free Software Foundation, Inc.
+# Copyright (C) 2007-2019 Free Software Foundation, Inc.
# Contributed by Richard Henderson <rth@cygnus.com>
#
# This file is part of GCC.
diff --git a/libgcc/mkmap-symver.awk b/libgcc/mkmap-symver.awk
index b2f0831dff1..fdd23a6ec74 100644
--- a/libgcc/mkmap-symver.awk
+++ b/libgcc/mkmap-symver.awk
@@ -1,5 +1,5 @@
# Generate an ELF symbol version map a-la Solaris and GNU ld.
-# Copyright (C) 2007-2018 Free Software Foundation, Inc.
+# Copyright (C) 2007-2019 Free Software Foundation, Inc.
# Contributed by Richard Henderson <rth@cygnus.com>
#
# This file is part of GCC.
@@ -33,7 +33,7 @@ BEGIN {
}
# We begin with nm input. Collect the set of symbols that are present
-# so that we can not emit them into the final version script -- Solaris
+# so that we cannot emit them into the final version script -- Solaris
# complains at us if we do.
state == "nm" && /^%%/ {
diff --git a/libgcc/offloadstuff.c b/libgcc/offloadstuff.c
index c1b2ae3809b..623f1dd48ec 100644
--- a/libgcc/offloadstuff.c
+++ b/libgcc/offloadstuff.c
@@ -1,5 +1,5 @@
/* Specialized bits of code needed for the offloading tables.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/soft-fp/adddf3.c b/libgcc/soft-fp/adddf3.c
index 358b38d40b1..4d60ffa29d2 100644
--- a/libgcc/soft-fp/adddf3.c
+++ b/libgcc/soft-fp/adddf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a + b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/addsf3.c b/libgcc/soft-fp/addsf3.c
index 0135b3d6488..bf9cd84e60d 100644
--- a/libgcc/soft-fp/addsf3.c
+++ b/libgcc/soft-fp/addsf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a + b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/addtf3.c b/libgcc/soft-fp/addtf3.c
index 13cee717673..482c2cb9255 100644
--- a/libgcc/soft-fp/addtf3.c
+++ b/libgcc/soft-fp/addtf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a + b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/divdf3.c b/libgcc/soft-fp/divdf3.c
index ded0ad06a4f..46bbb884095 100644
--- a/libgcc/soft-fp/divdf3.c
+++ b/libgcc/soft-fp/divdf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a / b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/divsf3.c b/libgcc/soft-fp/divsf3.c
index 46fe9ad1638..dbafb38a6ad 100644
--- a/libgcc/soft-fp/divsf3.c
+++ b/libgcc/soft-fp/divsf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a / b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/divtf3.c b/libgcc/soft-fp/divtf3.c
index e03889c8628..3f23ce79b79 100644
--- a/libgcc/soft-fp/divtf3.c
+++ b/libgcc/soft-fp/divtf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a / b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/double.h b/libgcc/soft-fp/double.h
index 88d4bd7b7a3..7f897ec6bcc 100644
--- a/libgcc/soft-fp/double.h
+++ b/libgcc/soft-fp/double.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Double Precision
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -89,7 +89,7 @@ union _FP_UNION_D
unsigned exp : _FP_EXPBITS_D;
unsigned sign : 1;
# endif
- } bits __attribute__ ((packed));
+ } bits;
};
# define FP_DECL_D(X) _FP_DECL (2, X)
@@ -210,7 +210,7 @@ union _FP_UNION_D
unsigned exp : _FP_EXPBITS_D;
unsigned sign : 1;
# endif
- } bits __attribute__ ((packed));
+ } bits;
};
# define FP_DECL_D(X) _FP_DECL (1, X)
diff --git a/libgcc/soft-fp/eqdf2.c b/libgcc/soft-fp/eqdf2.c
index 951f86dd077..2a44ee377ce 100644
--- a/libgcc/soft-fp/eqdf2.c
+++ b/libgcc/soft-fp/eqdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 otherwise
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/eqsf2.c b/libgcc/soft-fp/eqsf2.c
index 89bdc364a84..c515044d7bf 100644
--- a/libgcc/soft-fp/eqsf2.c
+++ b/libgcc/soft-fp/eqsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 otherwise
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/eqtf2.c b/libgcc/soft-fp/eqtf2.c
index f91720e9e0e..5feac41a0de 100644
--- a/libgcc/soft-fp/eqtf2.c
+++ b/libgcc/soft-fp/eqtf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 otherwise
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/extenddftf2.c b/libgcc/soft-fp/extenddftf2.c
index 94e55276eb0..0568ddf1779 100644
--- a/libgcc/soft-fp/extenddftf2.c
+++ b/libgcc/soft-fp/extenddftf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a converted to IEEE quad
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -43,7 +43,7 @@ __extenddftf2 (DFtype a)
FP_INIT_EXCEPTIONS;
FP_UNPACK_RAW_D (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND (Q, D, 4, 2, R, A);
#else
FP_EXTEND (Q, D, 2, 1, R, A);
diff --git a/libgcc/soft-fp/extended.h b/libgcc/soft-fp/extended.h
index 7b19e835f7a..435be3dfeba 100644
--- a/libgcc/soft-fp/extended.h
+++ b/libgcc/soft-fp/extended.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Extended Precision.
- Copyright (C) 1999-2016 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek (jj@ultra.linux.cz).
@@ -88,7 +88,7 @@ union _FP_UNION_E
unsigned exp : _FP_EXPBITS_E;
unsigned sign : 1;
# endif /* not bigendian */
- } bits __attribute__ ((packed));
+ } bits;
};
diff --git a/libgcc/soft-fp/extendhftf2.c b/libgcc/soft-fp/extendhftf2.c
index 6ff6438e6d2..c71ab53a454 100644
--- a/libgcc/soft-fp/extendhftf2.c
+++ b/libgcc/soft-fp/extendhftf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return an IEEE half converted to IEEE quad
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -41,7 +41,7 @@ __extendhftf2 (HFtype a)
FP_INIT_EXCEPTIONS;
FP_UNPACK_RAW_H (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND (Q, H, 4, 1, R, A);
#else
FP_EXTEND (Q, H, 2, 1, R, A);
diff --git a/libgcc/soft-fp/extendsfdf2.c b/libgcc/soft-fp/extendsfdf2.c
index 221584cbcc2..1e3ce92784e 100644
--- a/libgcc/soft-fp/extendsfdf2.c
+++ b/libgcc/soft-fp/extendsfdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a converted to IEEE double
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/extendsftf2.c b/libgcc/soft-fp/extendsftf2.c
index 6eab3a64385..82b5d627dde 100644
--- a/libgcc/soft-fp/extendsftf2.c
+++ b/libgcc/soft-fp/extendsftf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a converted to IEEE quad
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -43,7 +43,7 @@ __extendsftf2 (SFtype a)
FP_INIT_EXCEPTIONS;
FP_UNPACK_RAW_S (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND (Q, S, 4, 1, R, A);
#else
FP_EXTEND (Q, S, 2, 1, R, A);
diff --git a/libgcc/soft-fp/extendxftf2.c b/libgcc/soft-fp/extendxftf2.c
index 1975d672a89..d9885e5c8fc 100644
--- a/libgcc/soft-fp/extendxftf2.c
+++ b/libgcc/soft-fp/extendxftf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a converted to IEEE quad
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
@@ -41,7 +41,7 @@ __extendxftf2 (XFtype a)
FP_INIT_TRAPPING_EXCEPTIONS;
FP_UNPACK_RAW_E (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND (Q, E, 4, 4, R, A);
#else
FP_EXTEND (Q, E, 2, 2, R, A);
diff --git a/libgcc/soft-fp/fixdfdi.c b/libgcc/soft-fp/fixdfdi.c
index d697fc48a07..a96d10d1528 100644
--- a/libgcc/soft-fp/fixdfdi.c
+++ b/libgcc/soft-fp/fixdfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit signed integer
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixdfsi.c b/libgcc/soft-fp/fixdfsi.c
index 3e312aa99ed..5ccab270a7d 100644
--- a/libgcc/soft-fp/fixdfsi.c
+++ b/libgcc/soft-fp/fixdfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit signed integer
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixdfti.c b/libgcc/soft-fp/fixdfti.c
index 07d7a82cfc7..7a09e796bff 100644
--- a/libgcc/soft-fp/fixdfti.c
+++ b/libgcc/soft-fp/fixdfti.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert IEEE double to 128bit signed integer
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
diff --git a/libgcc/soft-fp/fixhfti.c b/libgcc/soft-fp/fixhfti.c
index 3610f4cc312..f953856eeab 100644
--- a/libgcc/soft-fp/fixhfti.c
+++ b/libgcc/soft-fp/fixhfti.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert IEEE half to 128bit signed integer
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/libgcc/soft-fp/fixsfdi.c b/libgcc/soft-fp/fixsfdi.c
index cd37e8edd32..4da18b9b0f6 100644
--- a/libgcc/soft-fp/fixsfdi.c
+++ b/libgcc/soft-fp/fixsfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit signed integer
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixsfsi.c b/libgcc/soft-fp/fixsfsi.c
index 6417bd436ba..3705b9ae404 100644
--- a/libgcc/soft-fp/fixsfsi.c
+++ b/libgcc/soft-fp/fixsfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit signed integer
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixsfti.c b/libgcc/soft-fp/fixsfti.c
index 0ff3b9a1f90..d6905fb354b 100644
--- a/libgcc/soft-fp/fixsfti.c
+++ b/libgcc/soft-fp/fixsfti.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert IEEE single to 128bit signed integer
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
diff --git a/libgcc/soft-fp/fixtfdi.c b/libgcc/soft-fp/fixtfdi.c
index 1ea4ad91174..44f48f5268c 100644
--- a/libgcc/soft-fp/fixtfdi.c
+++ b/libgcc/soft-fp/fixtfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit signed integer
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixtfsi.c b/libgcc/soft-fp/fixtfsi.c
index e4f8be190c3..842df9a446d 100644
--- a/libgcc/soft-fp/fixtfsi.c
+++ b/libgcc/soft-fp/fixtfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit signed integer
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixtfti.c b/libgcc/soft-fp/fixtfti.c
index d4acebaf492..bddc7f86da3 100644
--- a/libgcc/soft-fp/fixtfti.c
+++ b/libgcc/soft-fp/fixtfti.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert IEEE quad to 128bit signed integer
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
diff --git a/libgcc/soft-fp/fixunsdfdi.c b/libgcc/soft-fp/fixunsdfdi.c
index 5ae4c2c4111..58a90e4f48c 100644
--- a/libgcc/soft-fp/fixunsdfdi.c
+++ b/libgcc/soft-fp/fixunsdfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit unsigned integer
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixunsdfsi.c b/libgcc/soft-fp/fixunsdfsi.c
index 96bf6db3d73..8ed28b0a9db 100644
--- a/libgcc/soft-fp/fixunsdfsi.c
+++ b/libgcc/soft-fp/fixunsdfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit unsigned integer
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixunsdfti.c b/libgcc/soft-fp/fixunsdfti.c
index 942334169bd..61b5f7110aa 100644
--- a/libgcc/soft-fp/fixunsdfti.c
+++ b/libgcc/soft-fp/fixunsdfti.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert IEEE double to 128bit unsigned integer
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
diff --git a/libgcc/soft-fp/fixunshfti.c b/libgcc/soft-fp/fixunshfti.c
index 30edbfe5d89..2191e4bb7d7 100644
--- a/libgcc/soft-fp/fixunshfti.c
+++ b/libgcc/soft-fp/fixunshfti.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert IEEE half to 128bit unsigned integer
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/libgcc/soft-fp/fixunssfdi.c b/libgcc/soft-fp/fixunssfdi.c
index fe8a3fa6649..18ca264047e 100644
--- a/libgcc/soft-fp/fixunssfdi.c
+++ b/libgcc/soft-fp/fixunssfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit unsigned integer
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixunssfsi.c b/libgcc/soft-fp/fixunssfsi.c
index bd40ba25704..080d53bf890 100644
--- a/libgcc/soft-fp/fixunssfsi.c
+++ b/libgcc/soft-fp/fixunssfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit unsigned integer
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixunssfti.c b/libgcc/soft-fp/fixunssfti.c
index e630ac39a91..0f6bc24c966 100644
--- a/libgcc/soft-fp/fixunssfti.c
+++ b/libgcc/soft-fp/fixunssfti.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert IEEE single to 128bit unsigned integer
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
diff --git a/libgcc/soft-fp/fixunstfdi.c b/libgcc/soft-fp/fixunstfdi.c
index 788cbe4fce9..de6faa48bbc 100644
--- a/libgcc/soft-fp/fixunstfdi.c
+++ b/libgcc/soft-fp/fixunstfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit unsigned integer
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixunstfsi.c b/libgcc/soft-fp/fixunstfsi.c
index 25d6f58172d..6b45fe1bc3e 100644
--- a/libgcc/soft-fp/fixunstfsi.c
+++ b/libgcc/soft-fp/fixunstfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit unsigned integer
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixunstfti.c b/libgcc/soft-fp/fixunstfti.c
index f4dd876aa18..6e65ab18e73 100644
--- a/libgcc/soft-fp/fixunstfti.c
+++ b/libgcc/soft-fp/fixunstfti.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert IEEE quad to 128bit unsigned integer
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
diff --git a/libgcc/soft-fp/floatdidf.c b/libgcc/soft-fp/floatdidf.c
index afd31d34ad3..6ecf95f2ddb 100644
--- a/libgcc/soft-fp/floatdidf.c
+++ b/libgcc/soft-fp/floatdidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit signed integer to IEEE double
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatdisf.c b/libgcc/soft-fp/floatdisf.c
index 30e2c712e4d..34f9c0aeeb0 100644
--- a/libgcc/soft-fp/floatdisf.c
+++ b/libgcc/soft-fp/floatdisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit signed integer to IEEE single
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatditf.c b/libgcc/soft-fp/floatditf.c
index dd088d5622d..709a66522ba 100644
--- a/libgcc/soft-fp/floatditf.c
+++ b/libgcc/soft-fp/floatditf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit signed integer to IEEE quad
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatsidf.c b/libgcc/soft-fp/floatsidf.c
index a9b0a71fc58..eabc989331d 100644
--- a/libgcc/soft-fp/floatsidf.c
+++ b/libgcc/soft-fp/floatsidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit signed integer to IEEE double
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatsisf.c b/libgcc/soft-fp/floatsisf.c
index 5196818b7fe..7c302e2d352 100644
--- a/libgcc/soft-fp/floatsisf.c
+++ b/libgcc/soft-fp/floatsisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit signed integer to IEEE single
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatsitf.c b/libgcc/soft-fp/floatsitf.c
index 42f950fafeb..e44889a29c3 100644
--- a/libgcc/soft-fp/floatsitf.c
+++ b/libgcc/soft-fp/floatsitf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit signed integer to IEEE quad
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floattidf.c b/libgcc/soft-fp/floattidf.c
index fdc61330f09..889e6ae23a9 100644
--- a/libgcc/soft-fp/floattidf.c
+++ b/libgcc/soft-fp/floattidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 128bit signed integer to IEEE double
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
diff --git a/libgcc/soft-fp/floattihf.c b/libgcc/soft-fp/floattihf.c
index 74ac83a739b..2dc38348724 100644
--- a/libgcc/soft-fp/floattihf.c
+++ b/libgcc/soft-fp/floattihf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 128bit signed integer to IEEE half
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/libgcc/soft-fp/floattisf.c b/libgcc/soft-fp/floattisf.c
index bc173e9ecf4..6ea6b279b32 100644
--- a/libgcc/soft-fp/floattisf.c
+++ b/libgcc/soft-fp/floattisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 128bit signed integer to IEEE single
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
diff --git a/libgcc/soft-fp/floattitf.c b/libgcc/soft-fp/floattitf.c
index f2bf410bc1b..1c3e8913f5e 100644
--- a/libgcc/soft-fp/floattitf.c
+++ b/libgcc/soft-fp/floattitf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 128bit signed integer to IEEE quad
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
diff --git a/libgcc/soft-fp/floatundidf.c b/libgcc/soft-fp/floatundidf.c
index 093d594ea84..38c8638c125 100644
--- a/libgcc/soft-fp/floatundidf.c
+++ b/libgcc/soft-fp/floatundidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit unsigned integer to IEEE double
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatundisf.c b/libgcc/soft-fp/floatundisf.c
index 56fa9daee33..0e8356914eb 100644
--- a/libgcc/soft-fp/floatundisf.c
+++ b/libgcc/soft-fp/floatundisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit unsigned integer to IEEE single
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatunditf.c b/libgcc/soft-fp/floatunditf.c
index 106d06ee36b..ba5b5c54d5a 100644
--- a/libgcc/soft-fp/floatunditf.c
+++ b/libgcc/soft-fp/floatunditf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit unsigned integer to IEEE quad
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatunsidf.c b/libgcc/soft-fp/floatunsidf.c
index b116695af23..d338fb99909 100644
--- a/libgcc/soft-fp/floatunsidf.c
+++ b/libgcc/soft-fp/floatunsidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit unsigned integer to IEEE double
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatunsisf.c b/libgcc/soft-fp/floatunsisf.c
index fc2a6d65d7c..a44c0a88979 100644
--- a/libgcc/soft-fp/floatunsisf.c
+++ b/libgcc/soft-fp/floatunsisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit unsigned integer to IEEE single
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatunsitf.c b/libgcc/soft-fp/floatunsitf.c
index 000423d9d85..e9725616822 100644
--- a/libgcc/soft-fp/floatunsitf.c
+++ b/libgcc/soft-fp/floatunsitf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit unsigned integer to IEEE quad
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatuntidf.c b/libgcc/soft-fp/floatuntidf.c
index 0236bd5dc53..ca311aa259e 100644
--- a/libgcc/soft-fp/floatuntidf.c
+++ b/libgcc/soft-fp/floatuntidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 128bit unsigned integer to IEEE double
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
diff --git a/libgcc/soft-fp/floatuntihf.c b/libgcc/soft-fp/floatuntihf.c
index 90e77c2c00f..37423b77307 100644
--- a/libgcc/soft-fp/floatuntihf.c
+++ b/libgcc/soft-fp/floatuntihf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 128bit unsigned integer to IEEE half.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/libgcc/soft-fp/floatuntisf.c b/libgcc/soft-fp/floatuntisf.c
index e4b953189f1..5cf03319327 100644
--- a/libgcc/soft-fp/floatuntisf.c
+++ b/libgcc/soft-fp/floatuntisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 128bit unsigned integer to IEEE single
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
diff --git a/libgcc/soft-fp/floatuntitf.c b/libgcc/soft-fp/floatuntitf.c
index 69727e58b5e..78e7176f513 100644
--- a/libgcc/soft-fp/floatuntitf.c
+++ b/libgcc/soft-fp/floatuntitf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 128bit unsigned integer to IEEE quad
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
diff --git a/libgcc/soft-fp/gedf2.c b/libgcc/soft-fp/gedf2.c
index f466cc93418..bcefb61aa80 100644
--- a/libgcc/soft-fp/gedf2.c
+++ b/libgcc/soft-fp/gedf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/gesf2.c b/libgcc/soft-fp/gesf2.c
index 2e516e54604..22f0b6a24be 100644
--- a/libgcc/soft-fp/gesf2.c
+++ b/libgcc/soft-fp/gesf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/getf2.c b/libgcc/soft-fp/getf2.c
index e302629f613..6c7e38f36fc 100644
--- a/libgcc/soft-fp/getf2.c
+++ b/libgcc/soft-fp/getf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/half.h b/libgcc/soft-fp/half.h
index ba752978380..c7823ac61d3 100644
--- a/libgcc/soft-fp/half.h
+++ b/libgcc/soft-fp/half.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Half Precision.
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -75,7 +75,7 @@ union _FP_UNION_H
unsigned exp : _FP_EXPBITS_H;
unsigned sign : 1;
#endif
- } bits __attribute__ ((packed));
+ } bits;
};
#define FP_DECL_H(X) _FP_DECL (1, X)
diff --git a/libgcc/soft-fp/ledf2.c b/libgcc/soft-fp/ledf2.c
index 2f4d69822f2..c36148e2f12 100644
--- a/libgcc/soft-fp/ledf2.c
+++ b/libgcc/soft-fp/ledf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/lesf2.c b/libgcc/soft-fp/lesf2.c
index 67aa9c83f33..e3233535c8f 100644
--- a/libgcc/soft-fp/lesf2.c
+++ b/libgcc/soft-fp/lesf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/letf2.c b/libgcc/soft-fp/letf2.c
index 4a563052341..43d9f77bca9 100644
--- a/libgcc/soft-fp/letf2.c
+++ b/libgcc/soft-fp/letf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/muldf3.c b/libgcc/soft-fp/muldf3.c
index 644e810ac68..71a80e20c8d 100644
--- a/libgcc/soft-fp/muldf3.c
+++ b/libgcc/soft-fp/muldf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a * b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/mulsf3.c b/libgcc/soft-fp/mulsf3.c
index e551331ea75..582e00acfba 100644
--- a/libgcc/soft-fp/mulsf3.c
+++ b/libgcc/soft-fp/mulsf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a * b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/multf3.c b/libgcc/soft-fp/multf3.c
index baab3774a89..377abef7d15 100644
--- a/libgcc/soft-fp/multf3.c
+++ b/libgcc/soft-fp/multf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a * b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/negdf2.c b/libgcc/soft-fp/negdf2.c
index a4b2dea4687..1c6a22f3fa0 100644
--- a/libgcc/soft-fp/negdf2.c
+++ b/libgcc/soft-fp/negdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return -a
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/negsf2.c b/libgcc/soft-fp/negsf2.c
index 825b76f642b..2f589c9a752 100644
--- a/libgcc/soft-fp/negsf2.c
+++ b/libgcc/soft-fp/negsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return -a
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/negtf2.c b/libgcc/soft-fp/negtf2.c
index 892c923ae3d..77c03933b7f 100644
--- a/libgcc/soft-fp/negtf2.c
+++ b/libgcc/soft-fp/negtf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return -a
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/op-1.h b/libgcc/soft-fp/op-1.h
index b4d611df119..4509fdc6fe8 100644
--- a/libgcc/soft-fp/op-1.h
+++ b/libgcc/soft-fp/op-1.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Basic one-word fraction declaration and manipulation.
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
diff --git a/libgcc/soft-fp/op-2.h b/libgcc/soft-fp/op-2.h
index 5c5f4fc4221..96bdc41d067 100644
--- a/libgcc/soft-fp/op-2.h
+++ b/libgcc/soft-fp/op-2.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Basic two-word fraction declaration and manipulation.
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
diff --git a/libgcc/soft-fp/op-4.h b/libgcc/soft-fp/op-4.h
index b2df519c1ae..65a0644326c 100644
--- a/libgcc/soft-fp/op-4.h
+++ b/libgcc/soft-fp/op-4.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Basic four-word fraction declaration and manipulation.
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -696,39 +696,46 @@
#endif
#ifndef __FP_FRAC_SUB_3
-# define __FP_FRAC_SUB_3(r2, r1, r0, x2, x1, x0, y2, y1, y0) \
- do \
- { \
- _FP_W_TYPE __FP_FRAC_SUB_3_c1, __FP_FRAC_SUB_3_c2; \
- r0 = x0 - y0; \
- __FP_FRAC_SUB_3_c1 = r0 > x0; \
- r1 = x1 - y1; \
- __FP_FRAC_SUB_3_c2 = r1 > x1; \
- r1 -= __FP_FRAC_SUB_3_c1; \
- __FP_FRAC_SUB_3_c2 |= __FP_FRAC_SUB_3_c1 && (y1 == x1); \
- r2 = x2 - y2 - __FP_FRAC_SUB_3_c2; \
- } \
+# define __FP_FRAC_SUB_3(r2, r1, r0, x2, x1, x0, y2, y1, y0) \
+ do \
+ { \
+ _FP_W_TYPE __FP_FRAC_SUB_3_tmp[2]; \
+ _FP_W_TYPE __FP_FRAC_SUB_3_c1, __FP_FRAC_SUB_3_c2; \
+ __FP_FRAC_SUB_3_tmp[0] = x0 - y0; \
+ __FP_FRAC_SUB_3_c1 = __FP_FRAC_SUB_3_tmp[0] > x0; \
+ __FP_FRAC_SUB_3_tmp[1] = x1 - y1; \
+ __FP_FRAC_SUB_3_c2 = __FP_FRAC_SUB_3_tmp[1] > x1; \
+ __FP_FRAC_SUB_3_tmp[1] -= __FP_FRAC_SUB_3_c1; \
+ __FP_FRAC_SUB_3_c2 |= __FP_FRAC_SUB_3_c1 && (y1 == x1); \
+ r2 = x2 - y2 - __FP_FRAC_SUB_3_c2; \
+ r1 = __FP_FRAC_SUB_3_tmp[1]; \
+ r0 = __FP_FRAC_SUB_3_tmp[0]; \
+ } \
while (0)
#endif
#ifndef __FP_FRAC_SUB_4
# define __FP_FRAC_SUB_4(r3, r2, r1, r0, x3, x2, x1, x0, y3, y2, y1, y0) \
- do \
- { \
- _FP_W_TYPE __FP_FRAC_SUB_4_c1, __FP_FRAC_SUB_4_c2; \
- _FP_W_TYPE __FP_FRAC_SUB_4_c3; \
- r0 = x0 - y0; \
- __FP_FRAC_SUB_4_c1 = r0 > x0; \
- r1 = x1 - y1; \
- __FP_FRAC_SUB_4_c2 = r1 > x1; \
- r1 -= __FP_FRAC_SUB_4_c1; \
- __FP_FRAC_SUB_4_c2 |= __FP_FRAC_SUB_4_c1 && (y1 == x1); \
- r2 = x2 - y2; \
- __FP_FRAC_SUB_4_c3 = r2 > x2; \
- r2 -= __FP_FRAC_SUB_4_c2; \
- __FP_FRAC_SUB_4_c3 |= __FP_FRAC_SUB_4_c2 && (y2 == x2); \
- r3 = x3 - y3 - __FP_FRAC_SUB_4_c3; \
- } \
+ do \
+ { \
+ _FP_W_TYPE __FP_FRAC_SUB_4_tmp[3]; \
+ _FP_W_TYPE __FP_FRAC_SUB_4_c1, __FP_FRAC_SUB_4_c2; \
+ _FP_W_TYPE __FP_FRAC_SUB_4_c3; \
+ __FP_FRAC_SUB_4_tmp[0] = x0 - y0; \
+ __FP_FRAC_SUB_4_c1 = __FP_FRAC_SUB_4_tmp[0] > x0; \
+ __FP_FRAC_SUB_4_tmp[1] = x1 - y1; \
+ __FP_FRAC_SUB_4_c2 = __FP_FRAC_SUB_4_tmp[1] > x1; \
+ __FP_FRAC_SUB_4_tmp[1] -= __FP_FRAC_SUB_4_c1; \
+ __FP_FRAC_SUB_4_c2 |= __FP_FRAC_SUB_4_c1 && (y1 == x1); \
+ __FP_FRAC_SUB_4_tmp[2] = x2 - y2; \
+ __FP_FRAC_SUB_4_c3 = __FP_FRAC_SUB_4_tmp[2] > x2; \
+ __FP_FRAC_SUB_4_tmp[2] -= __FP_FRAC_SUB_4_c2; \
+ __FP_FRAC_SUB_4_c3 |= __FP_FRAC_SUB_4_c2 && (y2 == x2); \
+ r3 = x3 - y3 - __FP_FRAC_SUB_4_c3; \
+ r2 = __FP_FRAC_SUB_4_tmp[2]; \
+ r1 = __FP_FRAC_SUB_4_tmp[1]; \
+ r0 = __FP_FRAC_SUB_4_tmp[0]; \
+ } \
while (0)
#endif
diff --git a/libgcc/soft-fp/op-8.h b/libgcc/soft-fp/op-8.h
index 6b63c229932..2014a8e924e 100644
--- a/libgcc/soft-fp/op-8.h
+++ b/libgcc/soft-fp/op-8.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Basic eight-word fraction declaration and manipulation.
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz) and
@@ -35,6 +35,7 @@
/* We need just a few things from here for op-4, if we ever need some
other macros, they can be added. */
#define _FP_FRAC_DECL_8(X) _FP_W_TYPE X##_f[8]
+#define _FP_FRAC_SET_8(X, I) __FP_FRAC_SET_8 (X, I)
#define _FP_FRAC_HIGH_8(X) (X##_f[7])
#define _FP_FRAC_LOW_8(X) (X##_f[0])
#define _FP_FRAC_WORD_8(X, w) (X##_f[w])
@@ -147,4 +148,91 @@
} \
while (0)
+#define _FP_FRAC_ADD_8(R, X, Y) \
+ do \
+ { \
+ _FP_W_TYPE _FP_FRAC_ADD_8_c = 0; \
+ _FP_I_TYPE _FP_FRAC_ADD_8_i; \
+ for (_FP_FRAC_ADD_8_i = 0; _FP_FRAC_ADD_8_i < 8; ++_FP_FRAC_ADD_8_i) \
+ { \
+ R##_f[_FP_FRAC_ADD_8_i] \
+ = (X##_f[_FP_FRAC_ADD_8_i] + Y##_f[_FP_FRAC_ADD_8_i] \
+ + _FP_FRAC_ADD_8_c); \
+ _FP_FRAC_ADD_8_c \
+ = (_FP_FRAC_ADD_8_c \
+ ? R##_f[_FP_FRAC_ADD_8_i] <= X##_f[_FP_FRAC_ADD_8_i] \
+ : R##_f[_FP_FRAC_ADD_8_i] < X##_f[_FP_FRAC_ADD_8_i]); \
+ } \
+ } \
+ while (0)
+
+#define _FP_FRAC_SUB_8(R, X, Y) \
+ do \
+ { \
+ _FP_W_TYPE _FP_FRAC_SUB_8_tmp[8]; \
+ _FP_W_TYPE _FP_FRAC_SUB_8_c = 0; \
+ _FP_I_TYPE _FP_FRAC_SUB_8_i; \
+ for (_FP_FRAC_SUB_8_i = 0; _FP_FRAC_SUB_8_i < 8; ++_FP_FRAC_SUB_8_i) \
+ { \
+ _FP_FRAC_SUB_8_tmp[_FP_FRAC_SUB_8_i] \
+ = (X##_f[_FP_FRAC_SUB_8_i] - Y##_f[_FP_FRAC_SUB_8_i] \
+ - _FP_FRAC_SUB_8_c); \
+ _FP_FRAC_SUB_8_c \
+ = (_FP_FRAC_SUB_8_c \
+ ? (_FP_FRAC_SUB_8_tmp[_FP_FRAC_SUB_8_i] \
+ >= X##_f[_FP_FRAC_SUB_8_i]) \
+ : (_FP_FRAC_SUB_8_tmp[_FP_FRAC_SUB_8_i] \
+ > X##_f[_FP_FRAC_SUB_8_i])); \
+ } \
+ for (_FP_FRAC_SUB_8_i = 0; _FP_FRAC_SUB_8_i < 8; ++_FP_FRAC_SUB_8_i) \
+ R##_f[_FP_FRAC_SUB_8_i] = _FP_FRAC_SUB_8_tmp[_FP_FRAC_SUB_8_i]; \
+ } \
+ while (0)
+
+#define _FP_FRAC_CLZ_8(R, X) \
+ do \
+ { \
+ _FP_I_TYPE _FP_FRAC_CLZ_8_i; \
+ for (_FP_FRAC_CLZ_8_i = 7; _FP_FRAC_CLZ_8_i > 0; _FP_FRAC_CLZ_8_i--) \
+ if (X##_f[_FP_FRAC_CLZ_8_i]) \
+ break; \
+ __FP_CLZ ((R), X##_f[_FP_FRAC_CLZ_8_i]); \
+ (R) += _FP_W_TYPE_SIZE * (7 - _FP_FRAC_CLZ_8_i); \
+ } \
+ while (0)
+
+#define _FP_MINFRAC_8 0, 0, 0, 0, 0, 0, 0, 1
+
+#define _FP_FRAC_NEGP_8(X) ((_FP_WS_TYPE) X##_f[7] < 0)
+#define _FP_FRAC_ZEROP_8(X) \
+ ((X##_f[0] | X##_f[1] | X##_f[2] | X##_f[3] \
+ | X##_f[4] | X##_f[5] | X##_f[6] | X##_f[7]) == 0)
+#define _FP_FRAC_HIGHBIT_DW_8(fs, X) \
+ (_FP_FRAC_HIGH_DW_##fs (X) & _FP_HIGHBIT_DW_##fs)
+
+#define _FP_FRAC_COPY_4_8(D, S) \
+ do \
+ { \
+ D##_f[0] = S##_f[0]; \
+ D##_f[1] = S##_f[1]; \
+ D##_f[2] = S##_f[2]; \
+ D##_f[3] = S##_f[3]; \
+ } \
+ while (0)
+
+#define _FP_FRAC_COPY_8_4(D, S) \
+ do \
+ { \
+ D##_f[0] = S##_f[0]; \
+ D##_f[1] = S##_f[1]; \
+ D##_f[2] = S##_f[2]; \
+ D##_f[3] = S##_f[3]; \
+ D##_f[4] = D##_f[5] = D##_f[6] = D##_f[7]= 0; \
+ } \
+ while (0)
+
+#define __FP_FRAC_SET_8(X, I7, I6, I5, I4, I3, I2, I1, I0) \
+ (X##_f[7] = I7, X##_f[6] = I6, X##_f[5] = I5, X##_f[4] = I4, \
+ X##_f[3] = I3, X##_f[2] = I2, X##_f[1] = I1, X##_f[0] = I0)
+
#endif /* !SOFT_FP_OP_8_H */
diff --git a/libgcc/soft-fp/op-common.h b/libgcc/soft-fp/op-common.h
index f52194ecd1c..a6406798fc4 100644
--- a/libgcc/soft-fp/op-common.h
+++ b/libgcc/soft-fp/op-common.h
@@ -1,5 +1,5 @@
/* Software floating-point emulation. Common operations.
- Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -2041,6 +2041,27 @@
} \
while (0)
+/* Truncate from a wider floating-point format to a narrower one.
+ Input and output are cooked. */
+#define FP_TRUNC_COOKED(dfs, sfs, dwc, swc, D, S) \
+ do \
+ { \
+ _FP_STATIC_ASSERT (_FP_FRACBITS_##sfs >= _FP_FRACBITS_##dfs, \
+ "destination mantissa wider than source"); \
+ if (S##_c == FP_CLS_NAN) \
+ _FP_FRAC_SRL_##swc (S, (_FP_WFRACBITS_##sfs \
+ - _FP_WFRACBITS_##dfs)); \
+ else \
+ _FP_FRAC_SRS_##swc (S, (_FP_WFRACBITS_##sfs \
+ - _FP_WFRACBITS_##dfs), \
+ _FP_WFRACBITS_##sfs); \
+ _FP_FRAC_COPY_##dwc##_##swc (D, S); \
+ D##_e = S##_e; \
+ D##_c = S##_c; \
+ D##_s = S##_s; \
+ } \
+ while (0)
+
/* Helper primitives. */
/* Count leading zeros in a word. */
diff --git a/libgcc/soft-fp/quad.h b/libgcc/soft-fp/quad.h
index a09b95ff37a..ef860b4dd6b 100644
--- a/libgcc/soft-fp/quad.h
+++ b/libgcc/soft-fp/quad.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Quad Precision.
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -93,7 +93,7 @@ union _FP_UNION_Q
unsigned exp : _FP_EXPBITS_Q;
unsigned sign : 1;
# endif /* not bigendian */
- } bits __attribute__ ((packed));
+ } bits;
};
diff --git a/libgcc/soft-fp/single.h b/libgcc/soft-fp/single.h
index 42691a8e847..8c71fc790b6 100644
--- a/libgcc/soft-fp/single.h
+++ b/libgcc/soft-fp/single.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Single Precision.
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -82,7 +82,7 @@ union _FP_UNION_S
unsigned exp : _FP_EXPBITS_S;
unsigned sign : 1;
#endif
- } bits __attribute__ ((packed));
+ } bits;
};
#define FP_DECL_S(X) _FP_DECL (1, X)
diff --git a/libgcc/soft-fp/soft-fp.h b/libgcc/soft-fp/soft-fp.h
index 7fe3ae374dd..aee8e5d285c 100644
--- a/libgcc/soft-fp/soft-fp.h
+++ b/libgcc/soft-fp/soft-fp.h
@@ -1,5 +1,5 @@
/* Software floating-point emulation.
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
diff --git a/libgcc/soft-fp/subdf3.c b/libgcc/soft-fp/subdf3.c
index 1c3162928bc..69ecf76ff20 100644
--- a/libgcc/soft-fp/subdf3.c
+++ b/libgcc/soft-fp/subdf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a - b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/subsf3.c b/libgcc/soft-fp/subsf3.c
index 0a81916595f..3d221287cc1 100644
--- a/libgcc/soft-fp/subsf3.c
+++ b/libgcc/soft-fp/subsf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a - b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/subtf3.c b/libgcc/soft-fp/subtf3.c
index 6a93fce17a7..09df5fe793d 100644
--- a/libgcc/soft-fp/subtf3.c
+++ b/libgcc/soft-fp/subtf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a - b
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/truncdfsf2.c b/libgcc/soft-fp/truncdfsf2.c
index 4c757f56e0a..56a7593b677 100644
--- a/libgcc/soft-fp/truncdfsf2.c
+++ b/libgcc/soft-fp/truncdfsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Truncate IEEE double into IEEE single
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/trunctfdf2.c b/libgcc/soft-fp/trunctfdf2.c
index 837267f525b..f62d5419ded 100644
--- a/libgcc/soft-fp/trunctfdf2.c
+++ b/libgcc/soft-fp/trunctfdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Truncate IEEE quad into IEEE double
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -42,7 +42,7 @@ __trunctfdf2 (TFtype a)
FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC (D, Q, 2, 4, R, A);
#else
FP_TRUNC (D, Q, 1, 2, R, A);
diff --git a/libgcc/soft-fp/trunctfhf2.c b/libgcc/soft-fp/trunctfhf2.c
index 0500b141850..61d08f896e2 100644
--- a/libgcc/soft-fp/trunctfhf2.c
+++ b/libgcc/soft-fp/trunctfhf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Truncate IEEE quad into IEEE half.
- Copyright (C) 1997-2015 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -40,7 +40,7 @@ __trunctfhf2 (TFtype a)
FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC (H, Q, 1, 4, R, A);
#else
FP_TRUNC (H, Q, 1, 2, R, A);
diff --git a/libgcc/soft-fp/trunctfsf2.c b/libgcc/soft-fp/trunctfsf2.c
index 8cf829e548a..965e1c488f3 100644
--- a/libgcc/soft-fp/trunctfsf2.c
+++ b/libgcc/soft-fp/trunctfsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Truncate IEEE quad into IEEE single
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -42,7 +42,7 @@ __trunctfsf2 (TFtype a)
FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC (S, Q, 1, 4, R, A);
#else
FP_TRUNC (S, Q, 1, 2, R, A);
diff --git a/libgcc/soft-fp/trunctfxf2.c b/libgcc/soft-fp/trunctfxf2.c
index db411d05b07..0d828fac953 100644
--- a/libgcc/soft-fp/trunctfxf2.c
+++ b/libgcc/soft-fp/trunctfxf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Truncate IEEE quad into IEEE extended
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Uros Bizjak (ubizjak@gmail.com).
@@ -41,7 +41,7 @@ __trunctfxf2 (TFtype a)
FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC (E, Q, 4, 4, R, A);
#else
FP_TRUNC (E, Q, 2, 2, R, A);
diff --git a/libgcc/soft-fp/unorddf2.c b/libgcc/soft-fp/unorddf2.c
index ffdbc6b3490..5075207adb9 100644
--- a/libgcc/soft-fp/unorddf2.c
+++ b/libgcc/soft-fp/unorddf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a or b is a NaN, 0 otherwise.
- Copyright (C) 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Joseph Myers (joseph@codesourcery.com).
diff --git a/libgcc/soft-fp/unordsf2.c b/libgcc/soft-fp/unordsf2.c
index e3f3bd979a9..5b8fa10f7d8 100644
--- a/libgcc/soft-fp/unordsf2.c
+++ b/libgcc/soft-fp/unordsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a or b is a NaN, 0 otherwise.
- Copyright (C) 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Joseph Myers (joseph@codesourcery.com).
diff --git a/libgcc/soft-fp/unordtf2.c b/libgcc/soft-fp/unordtf2.c
index dd75985530b..b92e01291ef 100644
--- a/libgcc/soft-fp/unordtf2.c
+++ b/libgcc/soft-fp/unordtf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a or b is a NaN, 0 otherwise.
- Copyright (C) 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Joseph Myers (joseph@codesourcery.com).
diff --git a/libgcc/sync.c b/libgcc/sync.c
index 11dcd25e9dd..afea3ed543a 100644
--- a/libgcc/sync.c
+++ b/libgcc/sync.c
@@ -1,5 +1,5 @@
/* Out-of-line libgcc versions of __sync_* builtins. */
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/spu/cache.S b/libgcc/udivhi3.c
index 25e3dfd0974..792d39e80e6 100644
--- a/libgcc/config/spu/cache.S
+++ b/libgcc/udivhi3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -21,23 +21,18 @@ 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/>. */
- .data
- .p2align 7
- .global __cache
-__cache:
- .rept __CACHE_SIZE__ * 8
- .fill 128
- .endr
-
- .p2align 7
- .global __cache_tag_array
-__cache_tag_array:
- .rept __CACHE_SIZE__ * 2
- .long 1, 1, 1, 1
- .fill 128-16
- .endr
-__end_cache_tag_array:
-
- .globl __cache_tag_array_size
- .set __cache_tag_array_size, __end_cache_tag_array-__cache_tag_array
+extern unsigned short __udivmodhi4(unsigned short num, unsigned short den,
+ int modwanted);
+
+unsigned short
+__udivhi3 (unsigned short a, unsigned short b)
+{
+ return __udivmodhi4 (a, b, 0);
+}
+
+unsigned short
+__umodhi3 (unsigned short a, unsigned short b)
+{
+ return __udivmodhi4 (a, b, 1);
+}
diff --git a/libgcc/udivmod.c b/libgcc/udivmod.c
index dc1e76a7eab..be67683b498 100644
--- a/libgcc/udivmod.c
+++ b/libgcc/udivmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -21,17 +21,18 @@ 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/>. */
-long udivmodsi4 ();
+extern unsigned long __udivmodsi4(unsigned long num, unsigned long den,
+ int modwanted);
long
__udivsi3 (long a, long b)
{
- return udivmodsi4 (a, b, 0);
+ return __udivmodsi4 (a, b, 0);
}
long
__umodsi3 (long a, long b)
{
- return udivmodsi4 (a, b, 1);
+ return __udivmodsi4 (a, b, 1);
}
diff --git a/libgcc/udivmodhi4.c b/libgcc/udivmodhi4.c
new file mode 100644
index 00000000000..b4701358e89
--- /dev/null
+++ b/libgcc/udivmodhi4.c
@@ -0,0 +1,47 @@
+/* Copyright (C) 2000-2019 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/>. */
+
+unsigned short
+__udivmodhi4(unsigned short num, unsigned short den, int modwanted)
+{
+ unsigned short bit = 1;
+ unsigned short res = 0;
+
+ while (den < num && bit && !(den & (1U<<15)))
+ {
+ den <<=1;
+ bit <<=1;
+ }
+ while (bit)
+ {
+ if (num >= den)
+ {
+ num -= den;
+ res |= bit;
+ }
+ bit >>=1;
+ den >>=1;
+ }
+ if (modwanted) return num;
+ return res;
+}
diff --git a/libgcc/udivmodsi4.c b/libgcc/udivmodsi4.c
index 69e034977c1..4007d8bde50 100644
--- a/libgcc/udivmodsi4.c
+++ b/libgcc/udivmodsi4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -22,7 +22,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
unsigned long
-udivmodsi4(unsigned long num, unsigned long den, int modwanted)
+__udivmodsi4(unsigned long num, unsigned long den, int modwanted)
{
unsigned long bit = 1;
unsigned long res = 0;
diff --git a/libgcc/unwind-arm-common.inc b/libgcc/unwind-arm-common.inc
index 76f8fc3364b..c9a82b79bc8 100644
--- a/libgcc/unwind-arm-common.inc
+++ b/libgcc/unwind-arm-common.inc
@@ -1,5 +1,5 @@
/* Common unwinding code for ARM EABI and C6X.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is free software; you can redistribute it and/or modify it
@@ -30,6 +30,26 @@
#include <sys/sdt.h>
#endif
+#if __FDPIC__
+/* Load r7 with rt_sigreturn value. */
+#define ARM_SET_R7_RT_SIGRETURN 0xe3a070ad /* mov r7, #0xad */
+#define THUMB2_SET_R7_RT_SIGRETURN 0x07adf04f /* mov.w r7, #0xad */
+
+/* FDPIC jump to restorer sequence. */
+#define FDPIC_LDR_R12_WITH_FUNCDESC 0xe59fc004 /* ldr r12, [pc, #4] */
+#define FDPIC_LDR_R9_WITH_GOT 0xe59c9004 /* ldr r9, [r12, #4] */
+#define FDPIC_LDR_PC_WITH_RESTORER 0xe59cf000 /* ldr pc, [r12] */
+#define FDPIC_T2_LDR_R12_WITH_FUNCDESC 0xc008f8df /* ldr.w r12, [pc, #8] */
+#define FDPIC_T2_LDR_R9_WITH_GOT 0x9004f8dc /* ldr.w r9, [r12, #4] */
+#define FDPIC_T2_LDR_PC_WITH_RESTORER 0xf000f8dc /* ldr.w pc, [r12] */
+#define FDPIC_FUNCDESC_OFFSET 12
+
+/* Signal frame offsets. */
+#define ARM_NEW_RT_SIGFRAME_UCONTEXT 0x80
+#define ARM_UCONTEXT_SIGCONTEXT 0x14
+#define ARM_SIGCONTEXT_R0 0xc
+#endif
+
/* We add a prototype for abort here to avoid creating a dependency on
target headers. */
extern void abort (void);
@@ -62,6 +82,7 @@ __gnu_Unwind_Find_exidx (_Unwind_Ptr, int *);
#define UCB_PR_ADDR(ucbp) ((ucbp)->unwinder_cache.reserved2)
#define UCB_SAVED_CALLSITE_ADDR(ucbp) ((ucbp)->unwinder_cache.reserved3)
#define UCB_FORCED_STOP_ARG(ucbp) ((ucbp)->unwinder_cache.reserved4)
+#define UCB_PR_GOT(ucbp) ((ucbp)->unwinder_cache.reserved5)
/* Unwind descriptors. */
@@ -85,6 +106,16 @@ typedef struct __EIT_entry
_uw content;
} __EIT_entry;
+#ifdef __FDPIC__
+
+/* Only used in FDPIC case. */
+struct funcdesc_t
+{
+ unsigned int ptr;
+ unsigned int got;
+};
+#endif
+
/* Assembly helper functions. */
/* Restore core register state. Never returns. */
@@ -188,6 +219,45 @@ search_EIT_table (const __EIT_entry * table, int nrec, _uw return_address)
}
}
+#if __FDPIC__
+/* VFP is not restored, but this is sufficient to allow unwinding. */
+static _Unwind_Reason_Code
+__gnu_personality_sigframe_fdpic (_Unwind_State state,
+ _Unwind_Control_Block *ucbp,
+ _Unwind_Context *context)
+{
+ unsigned int sp;
+ unsigned int pc;
+ unsigned int funcdesc;
+ unsigned int handler;
+ unsigned int first_handler_instruction;
+ int i;
+
+ _Unwind_VRS_Get (context, _UVRSC_CORE, R_SP, _UVRSD_UINT32, &sp);
+ _Unwind_VRS_Get (context, _UVRSC_CORE, R_PC, _UVRSD_UINT32, &pc);
+
+ funcdesc = *(unsigned int *)((pc & ~1) + FDPIC_FUNCDESC_OFFSET);
+ handler = *(unsigned int *)(funcdesc);
+ first_handler_instruction = *(unsigned int *)(handler & ~1);
+
+ /* Adjust SP to point to the start of registers according to
+ signal type. */
+ if (first_handler_instruction == ARM_SET_R7_RT_SIGRETURN
+ || first_handler_instruction == THUMB2_SET_R7_RT_SIGRETURN)
+ sp += ARM_NEW_RT_SIGFRAME_UCONTEXT
+ + ARM_UCONTEXT_SIGCONTEXT
+ + ARM_SIGCONTEXT_R0;
+ else
+ sp += ARM_UCONTEXT_SIGCONTEXT
+ + ARM_SIGCONTEXT_R0;
+ /* Restore regs saved on stack by the kernel. */
+ for (i = 0; i < 16; i++)
+ _Unwind_VRS_Set (context, _UVRSC_CORE, i, _UVRSD_UINT32, sp + 4 * i);
+
+ return _URC_CONTINUE_UNWIND;
+}
+#endif
+
/* Find the exception index table eintry for the given address.
Fill in the relevant fields of the UCB.
Returns _URC_FAILURE if an error occurred, _URC_OK on success. */
@@ -211,6 +281,27 @@ get_eit_entry (_Unwind_Control_Block *ucbp, _uw return_address)
&nrec);
if (!eitp)
{
+#if __FDPIC__
+ /* If we are unwinding a signal handler then perhaps we have
+ reached a trampoline. Try to detect jump to restorer
+ sequence. */
+ _uw *pc = (_uw *)((return_address+2) & ~1);
+ if ((pc[0] == FDPIC_LDR_R12_WITH_FUNCDESC
+ && pc[1] == FDPIC_LDR_R9_WITH_GOT
+ && pc[2] == FDPIC_LDR_PC_WITH_RESTORER)
+ || (pc[0] == FDPIC_T2_LDR_R12_WITH_FUNCDESC
+ && pc[1] == FDPIC_T2_LDR_R9_WITH_GOT
+ && pc[2] == FDPIC_T2_LDR_PC_WITH_RESTORER))
+ {
+ struct funcdesc_t *funcdesc
+ = (struct funcdesc_t *) &__gnu_personality_sigframe_fdpic;
+
+ UCB_PR_ADDR (ucbp) = funcdesc->ptr;
+ UCB_PR_GOT (ucbp) = funcdesc->got;
+
+ return _URC_OK;
+ }
+#endif
UCB_PR_ADDR (ucbp) = 0;
return _URC_FAILURE;
}
@@ -225,6 +316,27 @@ get_eit_entry (_Unwind_Control_Block *ucbp, _uw return_address)
if (!eitp)
{
+#if __FDPIC__
+ /* If we are unwinding a signal handler then perhaps we have
+ reached a trampoline. Try to detect jump to restorer
+ sequence. */
+ _uw *pc = (_uw *)((return_address+2) & ~1);
+ if ((pc[0] == FDPIC_LDR_R12_WITH_FUNCDESC
+ && pc[1] == FDPIC_LDR_R9_WITH_GOT
+ && pc[2] == FDPIC_LDR_PC_WITH_RESTORER)
+ || (pc[0] == FDPIC_T2_LDR_R12_WITH_FUNCDESC
+ && pc[1] == FDPIC_T2_LDR_R9_WITH_GOT
+ && pc[2] == FDPIC_T2_LDR_PC_WITH_RESTORER))
+ {
+ struct funcdesc_t *funcdesc
+ = (struct funcdesc_t *) &__gnu_personality_sigframe_fdpic;
+
+ UCB_PR_ADDR (ucbp) = funcdesc->ptr;
+ UCB_PR_GOT (ucbp) = funcdesc->got;
+
+ return _URC_OK;
+ }
+#endif
UCB_PR_ADDR (ucbp) = 0;
return _URC_FAILURE;
}
@@ -233,6 +345,27 @@ get_eit_entry (_Unwind_Control_Block *ucbp, _uw return_address)
/* Can this frame be unwound at all? */
if (eitp->content == EXIDX_CANTUNWIND)
{
+#if __FDPIC__
+ /* If we are unwinding a signal handler then perhaps we have
+ reached a trampoline. Try to detect jump to restorer
+ sequence. */
+ _uw *pc = (_uw *)((return_address+2) & ~1);
+ if ((pc[0] == FDPIC_LDR_R12_WITH_FUNCDESC
+ && pc[1] == FDPIC_LDR_R9_WITH_GOT
+ && pc[2] == FDPIC_LDR_PC_WITH_RESTORER)
+ || (pc[0] == FDPIC_T2_LDR_R12_WITH_FUNCDESC
+ && pc[1] == FDPIC_T2_LDR_R9_WITH_GOT
+ && pc[2] == FDPIC_T2_LDR_PC_WITH_RESTORER))
+ {
+ struct funcdesc_t *funcdesc
+ = (struct funcdesc_t *) &__gnu_personality_sigframe_fdpic;
+
+ UCB_PR_ADDR (ucbp) = funcdesc->ptr;
+ UCB_PR_GOT (ucbp) = funcdesc->got;
+
+ return _URC_OK;
+ }
+#endif
UCB_PR_ADDR (ucbp) = 0;
return _URC_END_OF_STACK;
}
@@ -259,7 +392,21 @@ get_eit_entry (_Unwind_Control_Block *ucbp, _uw return_address)
{
/* One of the predefined standard routines. */
_uw idx = (*(_uw *) ucbp->pr_cache.ehtp >> 24) & 0xf;
+#if __FDPIC__
+ {
+ struct funcdesc_t *funcdesc
+ = (struct funcdesc_t *) __gnu_unwind_get_pr_addr (idx);
+ if (funcdesc)
+ {
+ UCB_PR_ADDR (ucbp) = funcdesc->ptr;
+ UCB_PR_GOT (ucbp) = funcdesc->got;
+ }
+ else
+ UCB_PR_ADDR (ucbp) = 0;
+ }
+#else
UCB_PR_ADDR (ucbp) = __gnu_unwind_get_pr_addr (idx);
+#endif
if (UCB_PR_ADDR (ucbp) == 0)
{
/* Failed */
@@ -270,6 +417,10 @@ get_eit_entry (_Unwind_Control_Block *ucbp, _uw return_address)
{
/* Execute region offset to PR */
UCB_PR_ADDR (ucbp) = selfrel_offset31 (ucbp->pr_cache.ehtp);
+#if __FDPIC__
+ UCB_PR_GOT (ucbp)
+ = (unsigned int) gnu_Unwind_Find_got ((_Unwind_Ptr) UCB_PR_ADDR (ucbp));
+#endif
}
return _URC_OK;
}
@@ -291,14 +442,29 @@ unwind_phase2 (_Unwind_Control_Block * ucbp, phase2_vrs * vrs)
UCB_SAVED_CALLSITE_ADDR (ucbp) = VRS_PC(vrs);
/* Call the pr to decide what to do. */
+#if __FDPIC__
+ {
+ volatile struct funcdesc_t funcdesc;
+ funcdesc.ptr = UCB_PR_ADDR (ucbp);
+ funcdesc.got = UCB_PR_GOT (ucbp);
+ pr_result = ((personality_routine) &funcdesc)
+ (_US_UNWIND_FRAME_STARTING, ucbp, (_Unwind_Context *) vrs);
+ }
+#else
pr_result = ((personality_routine) UCB_PR_ADDR (ucbp))
(_US_UNWIND_FRAME_STARTING, ucbp, (_Unwind_Context *) vrs);
+#endif
}
while (pr_result == _URC_CONTINUE_UNWIND);
if (pr_result != _URC_INSTALL_CONTEXT)
abort();
+#if __FDPIC__
+ /* r9 could have been lost due to PLT jump. Restore correct value. */
+ vrs->core.r[FDPIC_REGNUM] = gnu_Unwind_Find_got (VRS_PC (vrs));
+#endif
+
uw_restore_core_regs (vrs, &vrs->core);
}
@@ -346,8 +512,18 @@ unwind_phase2_forced (_Unwind_Control_Block *ucbp, phase2_vrs *entry_vrs,
next_vrs = saved_vrs;
/* Call the pr to decide what to do. */
+#if __FDPIC__
+ {
+ volatile struct funcdesc_t funcdesc;
+ funcdesc.ptr = UCB_PR_ADDR (ucbp);
+ funcdesc.got = UCB_PR_GOT (ucbp);
+ pr_result = ((personality_routine) &funcdesc)
+ (action, ucbp, (void *) &next_vrs);
+ }
+#else
pr_result = ((personality_routine) UCB_PR_ADDR (ucbp))
(action, ucbp, (void *) &next_vrs);
+#endif
saved_vrs.prev_sp = VRS_SP (&next_vrs);
}
@@ -384,6 +560,11 @@ unwind_phase2_forced (_Unwind_Control_Block *ucbp, phase2_vrs *entry_vrs,
return _URC_FAILURE;
}
+#if __FDPIC__
+ /* r9 could have been lost due to PLT jump. Restore correct value. */
+ saved_vrs.core.r[FDPIC_REGNUM] = gnu_Unwind_Find_got (VRS_PC (&saved_vrs));
+#endif
+
uw_restore_core_regs (&saved_vrs, &saved_vrs.core);
}
@@ -429,8 +610,18 @@ __gnu_Unwind_RaiseException (_Unwind_Control_Block * ucbp,
return _URC_FAILURE;
/* Call the pr to decide what to do. */
+#if __FDPIC__
+ {
+ volatile struct funcdesc_t funcdesc;
+ funcdesc.ptr = UCB_PR_ADDR (ucbp);
+ funcdesc.got = UCB_PR_GOT (ucbp);
+ pr_result = ((personality_routine) &funcdesc)
+ (_US_VIRTUAL_UNWIND_FRAME, ucbp, (void *) &saved_vrs);
+ }
+#else
pr_result = ((personality_routine) UCB_PR_ADDR (ucbp))
(_US_VIRTUAL_UNWIND_FRAME, ucbp, (void *) &saved_vrs);
+#endif
}
while (pr_result == _URC_CONTINUE_UNWIND);
@@ -488,13 +679,27 @@ __gnu_Unwind_Resume (_Unwind_Control_Block * ucbp, phase2_vrs * entry_vrs)
}
/* Call the cached PR. */
+#if __FDPIC__
+ {
+ volatile struct funcdesc_t funcdesc;
+ funcdesc.ptr = UCB_PR_ADDR (ucbp);
+ funcdesc.got = UCB_PR_GOT (ucbp);
+ pr_result = ((personality_routine) &funcdesc)
+ (_US_UNWIND_FRAME_RESUME, ucbp, (_Unwind_Context *) entry_vrs);
+ }
+#else
pr_result = ((personality_routine) UCB_PR_ADDR (ucbp))
(_US_UNWIND_FRAME_RESUME, ucbp, (_Unwind_Context *) entry_vrs);
+#endif
switch (pr_result)
{
case _URC_INSTALL_CONTEXT:
/* Upload the registers to enter the landing pad. */
+#if __FDPIC__
+ /* r9 could have been lost due to PLT jump. Restore correct value. */
+ entry_vrs->core.r[FDPIC_REGNUM] = gnu_Unwind_Find_got (VRS_PC (entry_vrs));
+#endif
uw_restore_core_regs (entry_vrs, &entry_vrs->core);
case _URC_CONTINUE_UNWIND:
@@ -586,9 +791,20 @@ __gnu_Unwind_Backtrace(_Unwind_Trace_Fn trace, void * trace_argument,
}
/* Call the pr to decide what to do. */
+#if __FDPIC__
+ {
+ volatile struct funcdesc_t funcdesc;
+ funcdesc.ptr = UCB_PR_ADDR (ucbp);
+ funcdesc.got = UCB_PR_GOT (ucbp);
+ code = ((personality_routine) &funcdesc)
+ (_US_VIRTUAL_UNWIND_FRAME | _US_FORCE_UNWIND,
+ ucbp, (void *) &saved_vrs);
+ }
+#else
code = ((personality_routine) UCB_PR_ADDR (ucbp))
(_US_VIRTUAL_UNWIND_FRAME | _US_FORCE_UNWIND,
ucbp, (void *) &saved_vrs);
+#endif
}
while (code != _URC_END_OF_STACK
&& code != _URC_FAILURE);
diff --git a/libgcc/unwind-c.c b/libgcc/unwind-c.c
index 613c1a22042..859735a3325 100644
--- a/libgcc/unwind-c.c
+++ b/libgcc/unwind-c.c
@@ -1,5 +1,5 @@
/* Supporting functions for C exception handling.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldy@quesejoda.com>.
Shamelessly stolen from the Java front end.
@@ -106,6 +106,7 @@ PERSONALITY_FUNCTION (_Unwind_State, struct _Unwind_Exception *,
struct _Unwind_Context *);
_Unwind_Reason_Code
+__attribute__((target ("general-regs-only")))
PERSONALITY_FUNCTION (_Unwind_State state,
struct _Unwind_Exception * ue_header,
struct _Unwind_Context * context)
diff --git a/libgcc/unwind-compat.c b/libgcc/unwind-compat.c
index 2b099e57122..ac27002cbb9 100644
--- a/libgcc/unwind-compat.c
+++ b/libgcc/unwind-compat.c
@@ -1,5 +1,5 @@
/* Backward compatibility unwind routines.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind-compat.h b/libgcc/unwind-compat.h
index 06820842c1b..bfb5bfd2abf 100644
--- a/libgcc/unwind-compat.h
+++ b/libgcc/unwind-compat.h
@@ -1,5 +1,5 @@
/* Backward compatibility unwind routines.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind-dw2-fde-compat.c b/libgcc/unwind-dw2-fde-compat.c
index bfc3c6eb0e9..60e4e2bff20 100644
--- a/libgcc/unwind-dw2-fde-compat.c
+++ b/libgcc/unwind-dw2-fde-compat.c
@@ -1,5 +1,5 @@
/* Backward compatibility unwind routines.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind-dw2-fde-dip.c b/libgcc/unwind-dw2-fde-dip.c
index ce6a46cfd45..fd144ea3e2d 100644
--- a/libgcc/unwind-dw2-fde-dip.c
+++ b/libgcc/unwind-dw2-fde-dip.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>.
This file is part of GCC.
diff --git a/libgcc/unwind-dw2-fde.c b/libgcc/unwind-dw2-fde.c
index 0d52b7a4cef..40ebf85a93e 100644
--- a/libgcc/unwind-dw2-fde.c
+++ b/libgcc/unwind-dw2-fde.c
@@ -1,5 +1,5 @@
/* Subroutines needed for unwinding stack frames for exception handling. */
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Jason Merrill <jason@cygnus.com>.
This file is part of GCC.
@@ -334,6 +334,9 @@ get_cie_encoding (const struct dwarf_cie *cie)
/* LSDA encoding. */
else if (*aug == 'L')
p++;
+ /* aarch64 b-key pointer authentication. */
+ else if (*aug == 'B')
+ p++;
/* Otherwise end of string, or unknown augmentation. */
else
return DW_EH_PE_absptr;
diff --git a/libgcc/unwind-dw2-fde.h b/libgcc/unwind-dw2-fde.h
index 88e8028111b..03e0415e52c 100644
--- a/libgcc/unwind-dw2-fde.h
+++ b/libgcc/unwind-dw2-fde.h
@@ -1,5 +1,5 @@
/* Subroutines needed for unwinding stack frames for exception handling. */
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Jason Merrill <jason@cygnus.com>.
This file is part of GCC.
diff --git a/libgcc/unwind-dw2.c b/libgcc/unwind-dw2.c
index de9310f524f..e76a1cbc462 100644
--- a/libgcc/unwind-dw2.c
+++ b/libgcc/unwind-dw2.c
@@ -1,5 +1,5 @@
/* DWARF2 exception handling and frame unwind runtime interface routines.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -136,8 +136,9 @@ struct _Unwind_Context
#define SIGNAL_FRAME_BIT ((~(_Unwind_Word) 0 >> 1) + 1)
/* Context which has version/args_size/by_value fields. */
#define EXTENDED_CONTEXT_BIT ((~(_Unwind_Word) 0 >> 2) + 1)
- /* Bit reserved on AArch64, return address has been signed with A key. */
-#define RA_A_SIGNED_BIT ((~(_Unwind_Word) 0 >> 3) + 1)
+ /* Bit reserved on AArch64, return address has been signed with A or B
+ key. */
+#define RA_SIGNED_BIT ((~(_Unwind_Word) 0 >> 3) + 1)
_Unwind_Word flags;
/* 0 for now, can be increased when further fields are added to
struct _Unwind_Context. */
@@ -225,7 +226,7 @@ _Unwind_GetGR (struct _Unwind_Context *context, int regno)
_Unwind_Context_Reg_Val val;
#ifdef DWARF_ZERO_REG
- if (index == DWARF_ZERO_REG)
+ if (regno == DWARF_ZERO_REG)
return 0;
#endif
@@ -502,6 +503,11 @@ extract_cie_info (const struct dwarf_cie *cie, struct _Unwind_Context *context,
fs->signal_frame = 1;
aug += 1;
}
+ /* aarch64 B-key pointer authentication. */
+ else if (aug[0] == 'B')
+ {
+ aug += 1;
+ }
/* Otherwise we have an unknown augmentation string.
Bail unless we saw a 'z' prefix. */
diff --git a/libgcc/unwind-dw2.h b/libgcc/unwind-dw2.h
index 56b300cd774..8ceb50322b3 100644
--- a/libgcc/unwind-dw2.h
+++ b/libgcc/unwind-dw2.h
@@ -1,5 +1,5 @@
/* DWARF2 frame unwind data structure.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind-generic.h b/libgcc/unwind-generic.h
index 639c96f438e..fbfd92da5ed 100644
--- a/libgcc/unwind-generic.h
+++ b/libgcc/unwind-generic.h
@@ -1,5 +1,5 @@
/* Exception handling and frame unwind runtime interface routines.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind-pe.h b/libgcc/unwind-pe.h
index dd5ae95fc2c..1c9dae54de6 100644
--- a/libgcc/unwind-pe.h
+++ b/libgcc/unwind-pe.h
@@ -1,5 +1,5 @@
/* Exception handling and frame unwind runtime interface routines.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of GCC.
@@ -177,6 +177,9 @@ read_sleb128 (const unsigned char *p, _sleb128_t *val)
The function returns P incremented past the value. BASE is as given
by base_of_encoded_value for this encoding in the appropriate context. */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
+
static const unsigned char *
read_encoded_value_with_base (unsigned char encoding, _Unwind_Ptr base,
const unsigned char *p, _Unwind_Ptr *val)
@@ -259,10 +262,27 @@ read_encoded_value_with_base (unsigned char encoding, _Unwind_Ptr base,
if (result != 0)
{
+#if __FDPIC__
+ /* FDPIC relative addresses imply taking the GOT address
+ into account. */
+ if ((encoding & DW_EH_PE_pcrel) && (encoding & DW_EH_PE_indirect))
+ {
+ result += gnu_Unwind_Find_got ((_Unwind_Ptr) u);
+ result = *(_Unwind_Internal_Ptr *) result;
+ }
+ else
+ {
+ result += ((encoding & 0x70) == DW_EH_PE_pcrel
+ ? (_Unwind_Internal_Ptr) u : base);
+ if (encoding & DW_EH_PE_indirect)
+ result = *(_Unwind_Internal_Ptr *) result;
+ }
+#else
result += ((encoding & 0x70) == DW_EH_PE_pcrel
? (_Unwind_Internal_Ptr) u : base);
if (encoding & DW_EH_PE_indirect)
result = *(_Unwind_Internal_Ptr *) result;
+#endif
}
}
@@ -270,6 +290,8 @@ read_encoded_value_with_base (unsigned char encoding, _Unwind_Ptr base,
return p;
}
+#pragma GCC diagnostic pop
+
#ifndef NO_BASE_OF_ENCODED_VALUE
/* Like read_encoded_value_with_base, but get the base from the context
diff --git a/libgcc/unwind-seh.c b/libgcc/unwind-seh.c
index 8c6aade9a3b..934a54bc8ee 100644
--- a/libgcc/unwind-seh.c
+++ b/libgcc/unwind-seh.c
@@ -1,5 +1,5 @@
/* Structured Exception Handling (SEH) runtime interface routines.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind-sjlj.c b/libgcc/unwind-sjlj.c
index 5dbc221d9ca..72fa1a83b0f 100644
--- a/libgcc/unwind-sjlj.c
+++ b/libgcc/unwind-sjlj.c
@@ -1,5 +1,5 @@
/* SJLJ exception handling and frame unwind runtime interface routines.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind.inc b/libgcc/unwind.inc
index 19a8e4f6c80..f9a26fd07ea 100644
--- a/libgcc/unwind.inc
+++ b/libgcc/unwind.inc
@@ -1,5 +1,5 @@
/* Exception handling and frame unwind runtime interface routines. -*- C -*-
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/vtv_end.c b/libgcc/vtv_end.c
index c0a1505d45e..1f34d6734c2 100644
--- a/libgcc/vtv_end.c
+++ b/libgcc/vtv_end.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/vtv_end_preinit.c b/libgcc/vtv_end_preinit.c
index 2cdefd31358..eee90aed185 100644
--- a/libgcc/vtv_end_preinit.c
+++ b/libgcc/vtv_end_preinit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/vtv_start.c b/libgcc/vtv_start.c
index 4cba1e6fa1d..418d2d80d58 100644
--- a/libgcc/vtv_start.c
+++ b/libgcc/vtv_start.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/vtv_start_preinit.c b/libgcc/vtv_start_preinit.c
index 9ce2c33434c..8d9a87b3c66 100644
--- a/libgcc/vtv_start_preinit.c
+++ b/libgcc/vtv_start_preinit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of GCC.