aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog725
-rw-r--r--libgcc/Makefile.in11
-rw-r--r--libgcc/c++-minimal/README2
-rw-r--r--libgcc/c++-minimal/guard.c97
-rw-r--r--libgcc/config.host55
-rw-r--r--libgcc/config/aarch64/__aarch64_have_sme.c2
-rw-r--r--libgcc/config/aarch64/__arm_sme_state.S2
-rw-r--r--libgcc/config/aarch64/__arm_tpidr2_restore.S2
-rw-r--r--libgcc/config/aarch64/__arm_tpidr2_save.S2
-rw-r--r--libgcc/config/aarch64/__arm_za_disable.S2
-rw-r--r--libgcc/config/aarch64/aarch64-asm.h22
-rw-r--r--libgcc/config/aarch64/aarch64-unwind-def.h (renamed from libgcc/config/nios2/elf-lib.h)25
-rw-r--r--libgcc/config/aarch64/aarch64-unwind.h212
-rw-r--r--libgcc/config/aarch64/cpuinfo.c25
-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/gnu-unwind.h2
-rw-r--r--libgcc/config/aarch64/libgcc-sme.ver2
-rw-r--r--libgcc/config/aarch64/libgcc-softfp.ver8
-rw-r--r--libgcc/config/aarch64/linux-unwind.h2
-rw-r--r--libgcc/config/aarch64/lse-init.c2
-rw-r--r--libgcc/config/aarch64/lse.S6
-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.c2
-rw-r--r--libgcc/config/aarch64/t-aarch643
-rw-r--r--libgcc/config/aarch64/t-lse2
-rw-r--r--libgcc/config/aarch64/t-mingw2
-rw-r--r--libgcc/config/aarch64/value-unwind.h2
-rw-r--r--libgcc/config/alpha/crtfastmath.c6
-rw-r--r--libgcc/config/alpha/libgcc-alpha-ldbl.ver2
-rw-r--r--libgcc/config/alpha/linux-unwind.h2
-rw-r--r--libgcc/config/alpha/qrnnd.S2
-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.c12
-rw-r--r--libgcc/config/alpha/vms-unwind.h22
-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.c4
-rw-r--r--libgcc/config/arc/ieee-754/divtab-arc-sf.c4
-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.c4
-rw-r--r--libgcc/config/arc/lib1funcs.S2
-rw-r--r--libgcc/config/arc/lib2funcs.c2
-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-arc2
-rw-r--r--libgcc/config/arc/t-arc-uClibc2
-rw-r--r--libgcc/config/arm/bpabi-lib.h4
-rw-r--r--libgcc/config/arm/bpabi-v6m.S2
-rw-r--r--libgcc/config/arm/bpabi.S2
-rw-r--r--libgcc/config/arm/bpabi.c8
-rw-r--r--libgcc/config/arm/cmse.c2
-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.c4
-rw-r--r--libgcc/config/arm/ieee754-df.S2
-rw-r--r--libgcc/config/arm/ieee754-sf.S2
-rw-r--r--libgcc/config/arm/lib1funcs.S2
-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.c4
-rw-r--r--libgcc/config/arm/linux-atomic.c8
-rw-r--r--libgcc/config/arm/pr-support.c8
-rw-r--r--libgcc/config/arm/symbian-lib.h2
-rw-r--r--libgcc/config/arm/sync-cp15dmb.specs2
-rw-r--r--libgcc/config/arm/sync-dmb.specs2
-rw-r--r--libgcc/config/arm/sync-none.specs2
-rw-r--r--libgcc/config/arm/unaligned-funcs.c2
-rw-r--r--libgcc/config/arm/unwind-arm-vxworks.c2
-rw-r--r--libgcc/config/arm/unwind-arm.c4
-rw-r--r--libgcc/config/arm/unwind-arm.h2
-rw-r--r--libgcc/config/avr/avr-lib.h2
-rw-r--r--libgcc/config/avr/lib1funcs-fixed.S68
-rw-r--r--libgcc/config/avr/lib1funcs.S305
-rw-r--r--libgcc/config/avr/lib2funcs.c2
-rw-r--r--libgcc/config/avr/libf7/ChangeLog28
-rw-r--r--libgcc/config/avr/libf7/asm-defs.h2
-rw-r--r--libgcc/config/avr/libf7/f7-renames.h13
-rw-r--r--libgcc/config/avr/libf7/f7-wraps.h16
-rwxr-xr-xlibgcc/config/avr/libf7/f7renames.sh12
-rwxr-xr-xlibgcc/config/avr/libf7/f7wraps.sh2
-rw-r--r--libgcc/config/avr/libf7/libf7-array.def2
-rw-r--r--libgcc/config/avr/libf7/libf7-asm.sx2
-rw-r--r--libgcc/config/avr/libf7/libf7-common.mk6
-rw-r--r--libgcc/config/avr/libf7/libf7-const.def2
-rw-r--r--libgcc/config/avr/libf7/libf7-constdef.h2
-rw-r--r--libgcc/config/avr/libf7/libf7.c21
-rw-r--r--libgcc/config/avr/libf7/libf7.h13
-rw-r--r--libgcc/config/avr/libf7/t-libf74
-rw-r--r--libgcc/config/avr/t-avr63
-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/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/ltd.c2
-rw-r--r--libgcc/config/c6x/ltf.c2
-rw-r--r--libgcc/config/c6x/pr-support.c12
-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/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.S2
-rw-r--r--libgcc/config/csky/crtn.S2
-rw-r--r--libgcc/config/csky/lib1funcs.S2
-rw-r--r--libgcc/config/csky/linux-atomic.c4
-rw-r--r--libgcc/config/csky/linux-unwind.h2
-rw-r--r--libgcc/config/csky/t-csky2
-rw-r--r--libgcc/config/csky/t-linux-csky2
-rw-r--r--libgcc/config/darwin-64.c2
-rw-r--r--libgcc/config/darwin-crt-tm.c12
-rw-r--r--libgcc/config/darwin-crt3.c36
-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.c10
-rw-r--r--libgcc/config/frv/cmovh.c10
-rw-r--r--libgcc/config/frv/cmovw.c10
-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.c10
-rw-r--r--libgcc/config/frv/frvend.c10
-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/amdgcn_veclib.h4
-rw-r--r--libgcc/config/gcn/atomic.c2
-rw-r--r--libgcc/config/gcn/crt0.c34
-rw-r--r--libgcc/config/gcn/gthr-gcn.h2
-rw-r--r--libgcc/config/gcn/lib2-bswapti2.c2
-rw-r--r--libgcc/config/gcn/lib2-divmod-di.c2
-rw-r--r--libgcc/config/gcn/lib2-divmod.c2
-rw-r--r--libgcc/config/gcn/lib2-gcn.h2
-rw-r--r--libgcc/config/gcn/lib2-vec_divmod-di.c2
-rw-r--r--libgcc/config/gcn/lib2-vec_divmod-hi.c2
-rw-r--r--libgcc/config/gcn/lib2-vec_divmod-qi.c2
-rw-r--r--libgcc/config/gcn/lib2-vec_divmod.c2
-rw-r--r--libgcc/config/gcn/t-amdgcn3
-rw-r--r--libgcc/config/gcn/unwind-gcn.c29
-rw-r--r--libgcc/config/gthr-lynx.h2
-rw-r--r--libgcc/config/gthr-rtems.h2
-rw-r--r--libgcc/config/gthr-vxworks-cond.c2
-rw-r--r--libgcc/config/gthr-vxworks-thread.c3
-rw-r--r--libgcc/config/gthr-vxworks-tls.c2
-rw-r--r--libgcc/config/gthr-vxworks.c4
-rw-r--r--libgcc/config/gthr-vxworks.h2
-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/ffshi2.c42
-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/h8300/t-h83001
-rw-r--r--libgcc/config/hardfp.c2
-rw-r--r--libgcc/config/i386/32/tf-signs.c4
-rw-r--r--libgcc/config/i386/cpuinfo.c2
-rw-r--r--libgcc/config/i386/crtfastmath.c8
-rw-r--r--libgcc/config/i386/crti.S2
-rw-r--r--libgcc/config/i386/crtn.S2
-rw-r--r--libgcc/config/i386/crtprec.c6
-rw-r--r--libgcc/config/i386/cygming-crtbegin.c2
-rw-r--r--libgcc/config/i386/cygming-crtend.c6
-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/gnu-unwind.h2
-rw-r--r--libgcc/config/i386/gthr-mcf.h2
-rw-r--r--libgcc/config/i386/gthr-win32-cond.c2
-rw-r--r--libgcc/config/i386/gthr-win32-thread.c2
-rw-r--r--libgcc/config/i386/gthr-win32.c2
-rw-r--r--libgcc/config/i386/gthr-win32.h83
-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.ver6
-rw-r--r--libgcc/config/i386/libgcc-glibc.ver8
-rw-r--r--libgcc/config/i386/libgcc-mingw.ver2
-rw-r--r--libgcc/config/i386/libgcc-sol2.ver8
-rw-r--r--libgcc/config/i386/linux-unwind.h9
-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.c6
-rw-r--r--libgcc/config/i386/shadow-stack-unwind.h2
-rw-r--r--libgcc/config/i386/sol2-unwind.h2
-rw-r--r--libgcc/config/i386/t-darwin3
-rw-r--r--libgcc/config/i386/value-unwind.h2
-rw-r--r--libgcc/config/i386/w32-unwind.h12
-rw-r--r--libgcc/config/ia64/crtbegin.S2
-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.c14
-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.c4
-rw-r--r--libgcc/config/ia64/sfp-exceptions.c6
-rw-r--r--libgcc/config/ia64/tf-signs.c4
-rw-r--r--libgcc/config/ia64/unwind-ia64.c24
-rw-r--r--libgcc/config/ia64/unwind-ia64.h4
-rw-r--r--libgcc/config/ia64/vms-crtinit.S2
-rw-r--r--libgcc/config/ia64/vms-unwind.h26
-rw-r--r--libgcc/config/iq2000/lib2funcs.c2
-rw-r--r--libgcc/config/libbid/ChangeLog95
-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.c4
-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_hf.c2
-rw-r--r--libgcc/config/libbid/_dd_to_sd.c4
-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.c4
-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.c4
-rw-r--r--libgcc/config/libbid/_eq_sd.c2
-rw-r--r--libgcc/config/libbid/_eq_td.c4
-rw-r--r--libgcc/config/libbid/_ge_dd.c4
-rw-r--r--libgcc/config/libbid/_ge_sd.c4
-rw-r--r--libgcc/config/libbid/_ge_td.c4
-rw-r--r--libgcc/config/libbid/_gt_dd.c4
-rw-r--r--libgcc/config/libbid/_gt_sd.c4
-rw-r--r--libgcc/config/libbid/_gt_td.c4
-rw-r--r--libgcc/config/libbid/_hf_to_dd.c2
-rw-r--r--libgcc/config/libbid/_hf_to_sd.c2
-rw-r--r--libgcc/config/libbid/_hf_to_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.c4
-rw-r--r--libgcc/config/libbid/_le_sd.c4
-rw-r--r--libgcc/config/libbid/_le_td.c4
-rw-r--r--libgcc/config/libbid/_lt_dd.c4
-rw-r--r--libgcc/config/libbid/_lt_sd.c4
-rw-r--r--libgcc/config/libbid/_lt_td.c4
-rw-r--r--libgcc/config/libbid/_mul_dd.c4
-rw-r--r--libgcc/config/libbid/_mul_sd.c4
-rw-r--r--libgcc/config/libbid/_mul_td.c2
-rw-r--r--libgcc/config/libbid/_ne_dd.c4
-rw-r--r--libgcc/config/libbid/_ne_sd.c4
-rw-r--r--libgcc/config/libbid/_ne_td.c4
-rw-r--r--libgcc/config/libbid/_sd_to_dd.c4
-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_hf.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.c4
-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.c4
-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_hf.c2
-rw-r--r--libgcc/config/libbid/_td_to_sd.c4
-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.c4
-rw-r--r--libgcc/config/libbid/_unord_sd.c4
-rw-r--r--libgcc/config/libbid/_unord_td.c4
-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.c414
-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.c4
-rw-r--r--libgcc/config/libbid/bid128_add.c166
-rw-r--r--libgcc/config/libbid/bid128_compare.c410
-rw-r--r--libgcc/config/libbid/bid128_div.c18
-rw-r--r--libgcc/config/libbid/bid128_fma.c344
-rw-r--r--libgcc/config/libbid/bid128_logb.c2
-rw-r--r--libgcc/config/libbid/bid128_minmax.c44
-rw-r--r--libgcc/config/libbid/bid128_mul.c14
-rw-r--r--libgcc/config/libbid/bid128_next.c14
-rw-r--r--libgcc/config/libbid/bid128_noncomp.c58
-rw-r--r--libgcc/config/libbid/bid128_quantize.c8
-rw-r--r--libgcc/config/libbid/bid128_rem.c4
-rw-r--r--libgcc/config/libbid/bid128_round_integral.c98
-rw-r--r--libgcc/config/libbid/bid128_scalb.c2
-rw-r--r--libgcc/config/libbid/bid128_sqrt.c2
-rwxr-xr-x[-rw-r--r--]libgcc/config/libbid/bid128_string.c175
-rw-r--r--libgcc/config/libbid/bid128_to_int16.c2
-rw-r--r--libgcc/config/libbid/bid128_to_int32.c4
-rw-r--r--libgcc/config/libbid/bid128_to_int64.c82
-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.c10
-rw-r--r--libgcc/config/libbid/bid128_to_uint64.c22
-rw-r--r--libgcc/config/libbid/bid128_to_uint8.c2
-rw-r--r--libgcc/config/libbid/bid32_to_bid128.c4
-rw-r--r--libgcc/config/libbid/bid32_to_bid64.c4
-rw-r--r--libgcc/config/libbid/bid64_add.c16
-rw-r--r--libgcc/config/libbid/bid64_compare.c146
-rw-r--r--libgcc/config/libbid/bid64_div.c36
-rw-r--r--libgcc/config/libbid/bid64_fma.c16
-rw-r--r--libgcc/config/libbid/bid64_logb.c2
-rw-r--r--libgcc/config/libbid/bid64_minmax.c48
-rw-r--r--libgcc/config/libbid/bid64_mul.c12
-rw-r--r--libgcc/config/libbid/bid64_next.c20
-rw-r--r--libgcc/config/libbid/bid64_noncomp.c66
-rw-r--r--libgcc/config/libbid/bid64_quantize.c8
-rw-r--r--libgcc/config/libbid/bid64_rem.c10
-rw-r--r--libgcc/config/libbid/bid64_round_integral.c94
-rw-r--r--libgcc/config/libbid/bid64_scalb.c2
-rw-r--r--libgcc/config/libbid/bid64_sqrt.c10
-rw-r--r--libgcc/config/libbid/bid64_string.c46
-rw-r--r--libgcc/config/libbid/bid64_to_bid128.c4
-rw-r--r--libgcc/config/libbid/bid64_to_int16.c2
-rw-r--r--libgcc/config/libbid/bid64_to_int32.c78
-rw-r--r--libgcc/config/libbid/bid64_to_int64.c82
-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.c90
-rw-r--r--libgcc/config/libbid/bid64_to_uint64.c46
-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.c14
-rw-r--r--libgcc/config/libbid/bid_conf.h34
-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.h12
-rw-r--r--libgcc/config/libbid/bid_dpd.c10
-rw-r--r--libgcc/config/libbid/bid_flag_operations.c28
-rw-r--r--libgcc/config/libbid/bid_from_int.c18
-rw-r--r--libgcc/config/libbid/bid_functions.h2
-rw-r--r--libgcc/config/libbid/bid_gcc_intrinsics.h8
-rw-r--r--libgcc/config/libbid/bid_inline_add.h52
-rw-r--r--libgcc/config/libbid/bid_internal.h34
-rw-r--r--libgcc/config/libbid/bid_round.c32
-rw-r--r--libgcc/config/libbid/bid_sqrt_macros.h6
-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.c12
-rw-r--r--libgcc/config/lm32/_lshrsi3.S2
-rw-r--r--libgcc/config/lm32/_modsi3.c12
-rw-r--r--libgcc/config/lm32/_mulsi3.c12
-rw-r--r--libgcc/config/lm32/_udivmodsi4.c12
-rw-r--r--libgcc/config/lm32/_udivsi3.c12
-rw-r--r--libgcc/config/lm32/_umodsi3.c12
-rw-r--r--libgcc/config/lm32/crti.S2
-rw-r--r--libgcc/config/lm32/crtn.S2
-rw-r--r--libgcc/config/lm32/libgcc_lm32.h14
-rw-r--r--libgcc/config/loongarch/crtfastmath.c2
-rw-r--r--libgcc/config/loongarch/linux-unwind.h2
-rw-r--r--libgcc/config/loongarch/sfp-machine.h2
-rw-r--r--libgcc/config/loongarch/t-crtstuff6
-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.c4
-rw-r--r--libgcc/config/m68k/crti.S2
-rw-r--r--libgcc/config/m68k/crtn.S2
-rw-r--r--libgcc/config/m68k/fpgnulib.c86
-rw-r--r--libgcc/config/m68k/lb1sf68.S19
-rw-r--r--libgcc/config/m68k/linux-atomic.c2
-rw-r--r--libgcc/config/m68k/linux-unwind.h2
-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.c38
-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/mingw/t-mingw-mcfgthread (renamed from libgcc/config/i386/t-mingw-mcfgthread)0
-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/lib1funcs.S4
-rw-r--r--libgcc/config/mips/lib2funcs.c2
-rw-r--r--libgcc/config/mips/libgcc-mips.ver2
-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.S2
-rw-r--r--libgcc/config/msp430/lib2mul.c2
-rw-r--r--libgcc/config/msp430/lib2shift.c2
-rw-r--r--libgcc/config/msp430/mpy.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.S2
-rw-r--r--libgcc/config/msp430/srai.S2
-rw-r--r--libgcc/config/msp430/srli.S2
-rw-r--r--libgcc/config/msp430/t-msp4302
-rw-r--r--libgcc/config/nds32/crtzero.S2
-rw-r--r--libgcc/config/nds32/initfini.c2
-rw-r--r--libgcc/config/nds32/isr-library/adj_intr_lvl.inc2
-rw-r--r--libgcc/config/nds32/isr-library/excp_isr.S2
-rw-r--r--libgcc/config/nds32/isr-library/excp_isr_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/intr_isr.S2
-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.S2
-rw-r--r--libgcc/config/nds32/isr-library/reset_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/restore_all.inc2
-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.inc2
-rw-r--r--libgcc/config/nds32/isr-library/restore_partial.inc2
-rw-r--r--libgcc/config/nds32/isr-library/restore_usr_regs.inc2
-rw-r--r--libgcc/config/nds32/isr-library/save_all.inc2
-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.inc2
-rw-r--r--libgcc/config/nds32/isr-library/save_partial.inc2
-rw-r--r--libgcc/config/nds32/isr-library/save_usr_regs.inc2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid00.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid00_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid01.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid01_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid02.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid02_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid03.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid03_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid04.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid04_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid05.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid05_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid06.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid06_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid07.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid07_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid08.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid08_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid09.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid09_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid10.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid10_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid11.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid11_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid12.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid12_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid13.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid13_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid14.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid14_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid15.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid15_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid16.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid16_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid17.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid17_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid18.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid18_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid19.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid19_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid20.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid20_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid21.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid21_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid22.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid22_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid23.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid23_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid24.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid24_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid25.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid25_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid26.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid26_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid27.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid27_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid28.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid28_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid29.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid29_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid30.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid30_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid31.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid31_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid32.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid32_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid33.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid33_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid34.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid34_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid35.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid35_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid36.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid36_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid37.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid37_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid38.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid38_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid39.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid39_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid40.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid40_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid41.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid41_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid42.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid42_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid43.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid43_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid44.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid44_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid45.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid45_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid46.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid46_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid47.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid47_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid48.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid48_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid49.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid49_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid50.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid50_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid51.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid51_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid52.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid52_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid53.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid53_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid54.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid54_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid55.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid55_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid56.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid56_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid57.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid57_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid58.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid58_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid59.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid59_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid60.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid60_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid61.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid61_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid62.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid62_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid63.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid63_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid64.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid64_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid65.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid65_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid66.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid66_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid67.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid67_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid68.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid68_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid69.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid69_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid70.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid70_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid71.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid71_4b.S2
-rw-r--r--libgcc/config/nds32/isr-library/vec_vid72.S2
-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.c4
-rw-r--r--libgcc/config/nds32/linux-unwind.h2
-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-glibc2
-rw-r--r--libgcc/config/nds32/t-nds32-isr2
-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.S85
-rw-r--r--libgcc/config/nios2/crtn.S56
-rw-r--r--libgcc/config/nios2/lib2-divmod-hi.c117
-rw-r--r--libgcc/config/nios2/lib2-divmod.c117
-rw-r--r--libgcc/config/nios2/lib2-divtable.c60
-rw-r--r--libgcc/config/nios2/lib2-mul.c42
-rw-r--r--libgcc/config/nios2/lib2-nios2.h49
-rw-r--r--libgcc/config/nios2/linux-atomic.c281
-rw-r--r--libgcc/config/nios2/linux-unwind.h105
-rw-r--r--libgcc/config/nios2/sfp-machine.h81
-rw-r--r--libgcc/config/nios2/t-linux7
-rw-r--r--libgcc/config/nios2/t-nios28
-rw-r--r--libgcc/config/nios2/tramp.c75
-rw-r--r--libgcc/config/no-unwind.h3
-rw-r--r--libgcc/config/nvptx/alloca.c38
-rw-r--r--libgcc/config/nvptx/atomic.c2
-rw-r--r--libgcc/config/nvptx/crt0.c2
-rw-r--r--libgcc/config/nvptx/gbl-ctors.c18
-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/nvptx/t-nvptx6
-rw-r--r--libgcc/config/nvptx/unwind-nvptx.c29
-rw-r--r--libgcc/config/or1k/lib1funcs.S7
-rw-r--r--libgcc/config/or1k/linux-unwind.h2
-rw-r--r--libgcc/config/or1k/t-or1k2
-rw-r--r--libgcc/config/pa/fptr.c4
-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.S2
-rw-r--r--libgcc/config/pa/linux-atomic.c12
-rw-r--r--libgcc/config/pa/linux-unwind.h6
-rw-r--r--libgcc/config/pa/milli64.S2
-rw-r--r--libgcc/config/pa/pa64-hpux-lib.h2
-rw-r--r--libgcc/config/pa/quadlib.c4
-rw-r--r--libgcc/config/pa/sfp-exceptions.c2
-rw-r--r--libgcc/config/pa/sfp-machine.h2
-rw-r--r--libgcc/config/pa/stublib.c2
-rw-r--r--libgcc/config/pa/sync-libfuncs.c2
-rw-r--r--libgcc/config/pa/t-slibgcc-hpux2
-rw-r--r--libgcc/config/pru/asri.c2
-rw-r--r--libgcc/config/pru/eqd.c2
-rw-r--r--libgcc/config/pru/eqf.c2
-rw-r--r--libgcc/config/pru/ged.c2
-rw-r--r--libgcc/config/pru/gef.c2
-rw-r--r--libgcc/config/pru/gtd.c2
-rw-r--r--libgcc/config/pru/gtf.c2
-rw-r--r--libgcc/config/pru/led.c2
-rw-r--r--libgcc/config/pru/lef.c2
-rw-r--r--libgcc/config/pru/lib2bitcountHI.c2
-rw-r--r--libgcc/config/pru/lib2divHI.c2
-rw-r--r--libgcc/config/pru/lib2divQI.c2
-rw-r--r--libgcc/config/pru/lib2divSI.c2
-rw-r--r--libgcc/config/pru/libgcc-eabi.ver2
-rw-r--r--libgcc/config/pru/ltd.c2
-rw-r--r--libgcc/config/pru/ltf.c2
-rw-r--r--libgcc/config/pru/mpyll.S2
-rw-r--r--libgcc/config/pru/pru-abi.h2
-rw-r--r--libgcc/config/pru/pru-asm.h2
-rw-r--r--libgcc/config/pru/pru-divmod.h2
-rw-r--r--libgcc/config/pru/sfp-machine.h2
-rw-r--r--libgcc/config/pru/t-pru2
-rw-r--r--libgcc/config/riscv/atomic.c4
-rw-r--r--libgcc/config/riscv/crti.S2
-rw-r--r--libgcc/config/riscv/crtn.S2
-rw-r--r--libgcc/config/riscv/div.S2
-rw-r--r--libgcc/config/riscv/feature_bits.c402
-rw-r--r--libgcc/config/riscv/linux-unwind.h7
-rw-r--r--libgcc/config/riscv/muldi3.S2
-rw-r--r--libgcc/config/riscv/multi3.c2
-rw-r--r--libgcc/config/riscv/riscv-asm.h71
-rw-r--r--libgcc/config/riscv/save-restore.S16
-rw-r--r--libgcc/config/riscv/sfp-machine.h2
-rw-r--r--libgcc/config/riscv/shadow-stack-unwind.h74
-rw-r--r--libgcc/config/riscv/t-elf1
-rw-r--r--libgcc/config/riscv/value-unwind.h2
-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/rl78/vregs.h6
-rw-r--r--libgcc/config/rs6000/_dd_to_kf.c2
-rw-r--r--libgcc/config/rs6000/_divkc3.c2
-rw-r--r--libgcc/config/rs6000/_kf_to_dd.c2
-rw-r--r--libgcc/config/rs6000/_kf_to_sd.c2
-rw-r--r--libgcc/config/rs6000/_kf_to_td.c2
-rw-r--r--libgcc/config/rs6000/_mulkc3.c2
-rw-r--r--libgcc/config/rs6000/_powikf2.c2
-rw-r--r--libgcc/config/rs6000/_sd_to_kf.c2
-rw-r--r--libgcc/config/rs6000/_td_to_kf.c2
-rw-r--r--libgcc/config/rs6000/aix-unwind.h6
-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.h10
-rw-r--r--libgcc/config/rs6000/darwin-crt2.c14
-rw-r--r--libgcc/config/rs6000/darwin-fallback.c30
-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.S2
-rw-r--r--libgcc/config/rs6000/darwin-world.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-sw.c2
-rw-r--r--libgcc/config/rs6000/fixunskfti-sw.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/float128-p10.c2
-rw-r--r--libgcc/config/rs6000/floattikf-sw.c2
-rw-r--r--libgcc/config/rs6000/floatuntikf-sw.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.c14
-rw-r--r--libgcc/config/rs6000/libgcc-glibc.ver2
-rw-r--r--libgcc/config/rs6000/linux-unwind.h4
-rw-r--r--libgcc/config/rs6000/morestack.S2
-rw-r--r--libgcc/config/rs6000/on_exit.c2
-rw-r--r--libgcc/config/rs6000/quad-float128.h2
-rw-r--r--libgcc/config/rs6000/sfp-exceptions.c4
-rw-r--r--libgcc/config/rs6000/sfp-machine.h4
-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-darwin3
-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.S2
-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.c4
-rw-r--r--libgcc/config/s390/32/_fixtfdi.c2
-rw-r--r--libgcc/config/s390/32/_fixunsdfdi.c4
-rw-r--r--libgcc/config/s390/32/_fixunssfdi.c6
-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.S5
-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/sfp-machine.h139
-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/gmon.c4
-rw-r--r--libgcc/config/sol2/t-sol22
-rw-r--r--libgcc/config/sparc/crtfastmath.c6
-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-unwind.h2
-rw-r--r--libgcc/config/stormy16/lib2funcs.c8
-rw-r--r--libgcc/config/stormy16/t-stormy162
-rw-r--r--libgcc/config/t-darwin-libgccs13
-rw-r--r--libgcc/config/t-darwin-min-113
-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-fuchsia2
-rw-r--r--libgcc/config/t-slibgcc-libgcc2
-rw-r--r--libgcc/config/t-softfp4
-rw-r--r--libgcc/config/unwind-dw2-fde-darwin.c2
-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.c2
-rw-r--r--libgcc/config/visium/memcpy.c8
-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/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.c4
-rw-r--r--libgcc/config/xtensa/unwind-dw2-xtensa.h2
-rw-r--r--libgcc/config/xtensa/xtensa-config-builtin.h2
-rwxr-xr-xlibgcc/configure5
-rw-r--r--libgcc/configure.ac4
-rw-r--r--libgcc/crtstuff.c4
-rw-r--r--libgcc/dfp-bit.c8
-rw-r--r--libgcc/dfp-bit.h8
-rw-r--r--libgcc/divmod.c2
-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.h2
-rw-r--r--libgcc/gbl-ctors.h2
-rw-r--r--libgcc/gcov.h2
-rw-r--r--libgcc/generic-morestack-thread.c2
-rw-r--r--libgcc/generic-morestack.c2
-rw-r--r--libgcc/generic-morestack.h2
-rw-r--r--libgcc/gthr-posix.h138
-rw-r--r--libgcc/gthr-single.h47
-rw-r--r--libgcc/gthr.h2
-rw-r--r--libgcc/hardcfr.c2
-rw-r--r--libgcc/libgcc-std.ver.in8
-rw-r--r--libgcc/libgcc2.c13
-rw-r--r--libgcc/libgcc2.h2
-rw-r--r--libgcc/libgcov-driver-system.c4
-rw-r--r--libgcc/libgcov-driver.c6
-rw-r--r--libgcc/libgcov-interface.c2
-rw-r--r--libgcc/libgcov-merge.c2
-rw-r--r--libgcc/libgcov-profiler.c2
-rw-r--r--libgcc/libgcov-util.c3
-rw-r--r--libgcc/libgcov.h6
-rwxr-xr-xlibgcc/mkheader.sh2
-rw-r--r--libgcc/mkmap-flat.awk2
-rw-r--r--libgcc/mkmap-symver.awk2
-rw-r--r--libgcc/offloadstuff.c2
-rw-r--r--libgcc/soft-fp/bitint.h16
-rw-r--r--libgcc/soft-fp/bitintpow10.c340
-rw-r--r--libgcc/soft-fp/fixddbitint.c33
-rw-r--r--libgcc/soft-fp/fixddti.c6
-rw-r--r--libgcc/soft-fp/fixsdbitint.c27
-rw-r--r--libgcc/soft-fp/fixsdti.c4
-rw-r--r--libgcc/soft-fp/fixtdbitint.c54
-rw-r--r--libgcc/soft-fp/fixtdti.c6
-rw-r--r--libgcc/soft-fp/fixunsddti.c6
-rw-r--r--libgcc/soft-fp/fixunssdti.c6
-rw-r--r--libgcc/soft-fp/fixunstdti.c6
-rw-r--r--libgcc/soft-fp/floatbitintdd.c45
-rw-r--r--libgcc/soft-fp/floatbitintsd.c39
-rw-r--r--libgcc/soft-fp/floatbitinttd.c68
-rw-r--r--libgcc/soft-fp/floattidd.c6
-rw-r--r--libgcc/soft-fp/floattisd.c6
-rw-r--r--libgcc/soft-fp/floattitd.c6
-rw-r--r--libgcc/soft-fp/floatuntidd.c6
-rw-r--r--libgcc/soft-fp/floatuntisd.c6
-rw-r--r--libgcc/soft-fp/floatuntitd.c6
-rw-r--r--libgcc/strub.c2
-rw-r--r--libgcc/sync.c2
-rw-r--r--libgcc/udivhi3.c2
-rw-r--r--libgcc/udivmod.c2
-rw-r--r--libgcc/udivmodhi4.c2
-rw-r--r--libgcc/udivmodsi4.c2
-rw-r--r--libgcc/unwind-arm-common.inc4
-rw-r--r--libgcc/unwind-c.c2
-rw-r--r--libgcc/unwind-compat.c2
-rw-r--r--libgcc/unwind-compat.h2
-rw-r--r--libgcc/unwind-dw2-btree.h252
-rw-r--r--libgcc/unwind-dw2-execute_cfa.h28
-rw-r--r--libgcc/unwind-dw2-fde-compat.c2
-rw-r--r--libgcc/unwind-dw2-fde-dip.c9
-rw-r--r--libgcc/unwind-dw2-fde.c2
-rw-r--r--libgcc/unwind-dw2-fde.h2
-rw-r--r--libgcc/unwind-dw2.c28
-rw-r--r--libgcc/unwind-dw2.h21
-rw-r--r--libgcc/unwind-generic.h2
-rw-r--r--libgcc/unwind-pe.h2
-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
1134 files changed, 6261 insertions, 4615 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 7c24757..7e907b6 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,726 @@
+2025-05-27 Jakub Jelinek <jakub@redhat.com>
+
+ * config/t-softfp (softfp_bid_list): Don't guard with
+ $(enable_decimal_float) == bid.
+ * soft-fp/bitint.h (__bid_pow10bitint): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_pow10bitint.
+ (__dpd_d2bbitint, __dpd_b2dbitint): Declare.
+ * soft-fp/bitintpow10.c (__dpd_d2bbitint, __dpd_b2dbitint): New
+ variables.
+ * soft-fp/fixsdbitint.c (__bid_fixsdbitint): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_fixsdbitint.
+ Add DPD support. Fix big-endian support.
+ * soft-fp/fixddbitint.c (__bid_fixddbitint): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_fixddbitint.
+ Add DPD support. Fix big-endian support.
+ * soft-fp/fixtdbitint.c (__bid_fixtdbitint): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_fixtdbitint.
+ Add DPD support. Fix big-endian support.
+ * soft-fp/fixsdti.c (__bid_fixsdbitint): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_fixsdbitint.
+ (__bid_fixsdti): For !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to
+ __dpd_fixsdti.
+ * soft-fp/fixddti.c (__bid_fixddbitint): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_fixddbitint.
+ (__bid_fixddti): For !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to
+ __dpd_fixddti.
+ * soft-fp/fixtdti.c (__bid_fixtdbitint): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_fixtdbitint.
+ (__bid_fixtdti): For !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to
+ __dpd_fixtdti.
+ * soft-fp/fixunssdti.c (__bid_fixsdbitint): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_fixsdbitint.
+ (__bid_fixunssdti): For !defined(ENABLE_DECIMAL_BID_FORMAT) redefine
+ to __dpd_fixunssdti.
+ * soft-fp/fixunsddti.c (__bid_fixddbitint): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_fixddbitint.
+ (__bid_fixunsddti): For !defined(ENABLE_DECIMAL_BID_FORMAT) redefine
+ to __dpd_fixunsddti.
+ * soft-fp/fixunstdti.c (__bid_fixtdbitint): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_fixtdbitint.
+ (__bid_fixunstdti): For !defined(ENABLE_DECIMAL_BID_FORMAT) redefine
+ to __dpd_fixunstdti.
+ * soft-fp/floatbitintsd.c (__bid_floatbitintsd): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_floatbitintsd.
+ Add DPD support. Avoid calling __builtin_clzll with 0 argument. Fix
+ big-endian support.
+ * soft-fp/floatbitintdd.c (__bid_floatbitintdd): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_floatbitintdd.
+ Add DPD support. Avoid calling __builtin_clzll with 0 argument. Fix
+ big-endian support.
+ * soft-fp/floatbitinttd.c (__bid_floatbitinttd): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_floatbitinttd.
+ Add DPD support. Avoid calling __builtin_clzll with 0 argument. Fix
+ big-endian support.
+ * soft-fp/floattisd.c (__bid_floatbitintsd): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_floatbitintsd.
+ (__bid_floattisd): For !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to
+ __dpd_floattisd.
+ * soft-fp/floattidd.c (__bid_floatbitintdd): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_floatbitintdd.
+ (__bid_floattidd): For !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to
+ __dpd_floattidd.
+ * soft-fp/floattitd.c (__bid_floatbitinttd): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_floatbitinttd.
+ (__bid_floattitd): For !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to
+ __dpd_floattitd.
+ * soft-fp/floatuntisd.c (__bid_floatbitintsd): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_floatbitintsd.
+ (__bid_floatuntisd): For !defined(ENABLE_DECIMAL_BID_FORMAT) redefine
+ to __dpd_floatuntisd.
+ * soft-fp/floatuntidd.c (__bid_floatbitintdd): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_floatbitintdd.
+ (__bid_floatuntidd): For !defined(ENABLE_DECIMAL_BID_FORMAT) redefine
+ to __dpd_floatuntidd.
+ * soft-fp/floatuntitd.c (__bid_floatbitinttd): For
+ !defined(ENABLE_DECIMAL_BID_FORMAT) redefine to __dpd_floatbitinttd.
+ (__bid_floatuntitd): For !defined(ENABLE_DECIMAL_BID_FORMAT) redefine
+ to __dpd_floatuntitd.
+
+2025-05-25 LIU Hao <lh_mouse@126.com>
+
+ * config.host: Enable mcf thread model for aarch64-*-mingw*.
+ * config/i386/t-mingw-mcfgthread: Move to...
+ * config/mingw/t-mingw-mcfgthread: ...here.
+
+2025-05-21 Alexandre Oliva <oliva@adacore.com>
+
+ * config/gthr-vxworks-thread.c: Include string.h for memset.
+
+2025-05-20 Jakub Jelinek <jakub@redhat.com>
+
+ * libgcc-std.ver.in (GCC_14.0.0): Remove bitint related exports
+ from here.
+ * config/i386/libgcc-glibc.ver (GCC_14.0.0): Add them here.
+ * config/i386/libgcc-darwin.ver (GCC_14.0.0): Likewise.
+ * config/i386/libgcc-sol2.ver (GCC_14.0.0): Likewise.
+ * config/aarch64/libgcc-softfp.ver (GCC_14.0.0): Likewise.
+
+2025-05-20 Jakub Jelinek <jakub@redhat.com>
+
+ * libgcc2.c (bitint_reduce_prec): For big endian
+ __LIBGCC_BITINT_ORDER__ use ++*p and --*p instead of
+ ++p and --p.
+ * soft-fp/bitint.h (bitint_reduce_prec): Likewise.
+
+2025-05-17 Oleg Endo <olegendo@gcc.gnu.org>
+
+ * config/sh/lib1funcs.S (ashiftrt_r4_32): Increase alignment.
+ (movemem): Force alignment of the mova intruction.
+
+2025-04-25 Thomas Schwinge <tschwinge@baylibre.com>
+
+ PR target/119853
+ PR target/119854
+ * config/gcn/crt0.c (_fini_array): Call
+ '__GCC_offload___cxa_finalize'.
+ * config/nvptx/gbl-ctors.c (__static_do_global_dtors): Likewise.
+
+2025-04-19 Jiaxun Yang <jiaxun.yang@flygoat.com>
+
+ PR target/118257
+ * config/sh/sfp-machine.h (_FPU_GETCW): Implement with builtin.
+ (_FPU_SETCW): Likewise.
+ (FP_EX_ENABLE_SHIFT): Derive from arch spec.
+ (FP_EX_CAUSE_SHIFT): Likewise.
+ (FP_RND_MASK): Likewise.
+ (FP_EX_INVALID): Likewise.
+ (FP_EX_DIVZERO): Likewise.
+ (FP_EX_ALL): Likewise.
+ (FP_EX_OVERFLOW): Likewise.
+ (FP_EX_UNDERFLOW): Likewise.
+ (FP_EX_INEXACT): Likewise.
+ (_FP_DECL_EX): Declear default FCSR value.
+ (FP_RND_NEAREST): Derive from arch spec.
+ (FP_RND_ZERO): Likewise.
+ (FP_INIT_ROUNDMODE): Likewise.
+ (FP_ROUNDMODE): Likewise.
+ (FP_TRAPPING_EXCEPTIONS): Likewise.
+ (FP_HANDLE_EXCEPTIONS): Implement with _FPU_SETCW.
+
+2025-04-19 Jiaxun Yang <jiaxun.yang@flygoat.com>
+
+ PR target/111814
+ * config/sh/sfp-machine.h (_FP_NANFRAC_B): Reverse signaling bit.
+ (_FP_NANFRAC_H): Likewise.
+ (_FP_NANFRAC_S): Likewise.
+ (_FP_NANFRAC_D): Likewise.
+ (_FP_NANFRAC_Q): Likewise.
+ (_FP_KEEPNANFRACP): Enable for target.
+ (_FP_QNANNEGATEDP): Enable for target.
+ (_FP_CHOOSENAN): Port from MIPS.
+
+2025-04-14 Thomas Schwinge <tschwinge@baylibre.com>
+
+ PR target/118794
+ * config/gcn/unwind-gcn.c (_Unwind_Resume): New.
+ * config/nvptx/unwind-nvptx.c (_Unwind_Resume): Likewise.
+
+2025-04-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR target/119673
+ * config/i386/gthr-win32.h (__GTHREAD_ALWAYS_INLINE): New macro.
+ (__GTHREAD_INLINE): Likewise.
+ (__GTHR_W32_InterlockedCompareExchange): Delete.
+ (__gthread_active_p): Mark as __GTHREAD_INLINE instead of
+ static inline.
+ (__gthread_create): Likewise.
+ (__gthread_join): Likewise.
+ (__gthread_self): Likewise.
+ (__gthread_detach): Likewise.
+ (__gthread_equal): Likewise.
+ (__gthread_yield): Likewise.
+ (__gthread_once): Likewise.
+ (__gthread_key_create): Likewise.
+ (__gthread_key_delete): Likewise.
+ (__gthread_getspecific): Likewise.
+ (__gthread_setspecific): Likewise.
+ (__gthread_mutex_init_function): Likewise.
+ (__gthread_mutex_destroy): Likewise.
+ (__gthread_mutex_lock): Likewise.
+ (__gthread_mutex_trylock): Likewise.
+ (__gthread_mutex_timedlock): Likewise.
+ (__gthread_mutex_unlock): Likewise.
+ (__gthread_recursive_mutex_trylock): Likewise.
+ (__gthread_cond_init_function): Likewise.
+ (__gthread_cond_broadcast): Likewise.
+ (__gthread_cond_signal): Likewise.
+ (__gthread_cond_wait): Likewise.
+ (__gthread_cond_timedwait): Likewise.
+ (__GTHREAD_WIN32_INLINE): Likewise.
+ (__GTHREAD_WIN32_COND_INLINE): Likewise.
+ (__gthread_recursive_mutex_init_function): Likewise.
+ (__gthread_recursive_mutex_destroy): Likewise.
+ (__gthread_recursive_mutex_lock): Likewise.
+ (__gthread_recursive_mutex_unlock): Likewise.
+ (__gthread_cond_destroy): Likewise.
+ (__gthread_cond_wait_recursive): Likewise.
+
+2025-04-08 Thomas Schwinge <tschwinge@baylibre.com>
+
+ * config/gcn/unwind-gcn.c (_Unwind_RaiseException)
+ (_Unwind_Resume_or_Rethrow): New.
+ * config/nvptx/unwind-nvptx.c (_Unwind_RaiseException)
+ (_Unwind_Resume_or_Rethrow): Likewise.
+
+2025-04-08 Thomas Schwinge <tschwinge@baylibre.com>
+
+ * config/gcn/unwind-gcn.c (_Unwind_DeleteException): New.
+ * config/nvptx/unwind-nvptx.c (_Unwind_DeleteException): Likewise.
+
+2025-04-07 Thomas Schwinge <tschwinge@baylibre.com>
+
+ * config/nvptx/alloca.c: New.
+ * config/nvptx/t-nvptx (LIB2ADD): Add it.
+
+2025-04-07 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/lib1funcs.S (__mulhisi3, __umulhisi3): Use
+ __mulhisi3_helper for better performance on AVRrc.
+
+2025-04-06 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/t-avr (LIB1ASMFUNCS): Add (and remove from
+ FUNCS_notiny): _mulhisi3, _umulhisi3, _mulqq3, _mulhq3, _muluhq3,
+ _mulha3, _muluha3 _muluha3_round, _usmuluha3, _ssmulha3,
+ _divqq3, _udivuqq3, _divqq_helper, _divhq3, _udivuhq3.
+ _divha3 _udivuha3, _ssneg_2, _ssabs_1, _ssabs_2,
+ _mask1, _ret, _roundqq3 _rounduqq3,
+ _round_s2, _round_u2, _round_2_const, _addmask_2.
+ * config/avr/lib1funcs.S (__umulhisi3, __mulhisi3): Make
+ work on AVRrc.
+ * config/avr/lib1funcs-fixed.S: Build 8-bit and 16-bit functions
+ on AVRrc, too.
+
+2025-04-05 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/lib1funcs.S (__umulhisi3) [Have MUL]: Reduce call
+ depth by 1.
+
+2025-03-22 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/t-avr (LIB1ASMFUNCS, LIB2FUNCS_EXCLUDE):
+ Properly handle avrtiny.
+
+2025-03-14 Thomas Schwinge <thomas@codesourcery.com>
+
+ Revert:
+ 2023-12-23 Thomas Schwinge <thomas@codesourcery.com>
+
+ * c++-minimal/README: New.
+ * c++-minimal/guard.c: New.
+ * config/gcn/t-amdgcn (LIB2ADD): Add it.
+ * config/nvptx/t-nvptx (LIB2ADD): Likewise.
+
+2025-03-13 Wilco Dijkstra <wilco.dijkstra@arm.com>
+
+ * config/aarch64/cpuinfo.c (__init_cpu_features_constructor):
+ Remove FEAT_PREDRES and FEAT_LS64* support.
+
+2025-03-10 Jakub Jelinek <jakub@redhat.com>
+ Michael Leuchtenburg <michael@slashhome.org>
+
+ PR libgcc/119151
+ * unwind-dw2-btree.h (btree_split_inner): Add size argument. If
+ left_fence is in the middle of [target,target + size - 1] range,
+ increase it to target + size - 1.
+ (btree_insert): Adjust btree_split_inner caller. If fence is smaller
+ than base + size - 1, increase it and separator of the slot to
+ base + size - 1.
+
+2025-03-10 Jakub Jelinek <jakub@redhat.com>
+
+ * unwind-dw2-btree.h: Formatting fixes.
+
+2025-03-01 Jan Dubiec <jdx@o2.pl>
+
+ PR target/114222
+ * config/h8300/t-h8300: Add __ffshi2().
+ * config/h8300/ffshi2.c: New file.
+
+2025-02-18 Roman Kagan <rkagan@amazon.de>
+
+ * config/i386/linux-unwind.h: Remove preprocessor
+ condition to enable fallback path for all libc-s.
+
+2025-02-17 Lulu Cheng <chenglulu@loongson.cn>
+
+ PR target/118844
+ * config/loongarch/t-crtstuff: Add '-mcmodel=extreme'
+ to CRTSTUFF_T_CFLAGS_S.
+
+2025-02-12 Yangyu Chen <cyy@cyyself.name>
+
+ * config/riscv/feature_bits.c (RISCV_VENDOR_FEATURE_BITS_LENGTH): Drop.
+ (__init_riscv_features_bits_linux): Drop.
+
+2025-02-08 Dimitry Andric <dimitry@andric.com>
+
+ PR target/118685
+ * config.host (*-*-freebsd*): Add crtbeginT.o to extra_parts.
+
+2025-02-07 Peter Bergner <bergner@linux.ibm.com>
+
+ PR target/117674
+ * config/rs6000/linux-unwind.h (ppc_backchain_fallback): Add cast to
+ avoid comparison between pointer and integer warning.
+
+2025-01-30 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/t-avr (LIB1ASMFUNCS): Add _strlen_memx.
+ * config/avr/lib1funcs.S <L_strlen_memx, __strlen_memx>: Implement.
+
+2025-01-28 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/118642
+ * config/arm/sync-none.specs (link): Only add the defsym if
+ libgcc will be used.
+ * config/arm/sync-dmb.specs: Likewise.
+ * config/arm/sync-cp15dmb.specs: Likewise.
+
+2025-01-17 Monk Chiang <monk.chiang@sifive.com>
+
+ * config/riscv/crti.S: Add lpad instructions.
+ * config/riscv/crtn.S: Likewise.
+ * config/riscv/save-restore.S: Likewise.
+ * config/riscv/riscv-asm.h: Add GNU_PROPERTY for ZICFILP,
+ ZICFISS.
+ Co-Developed-by: Jesse Huang <jesse.huang@sifive.com>
+
+2025-01-17 Monk Chiang <monk.chiang@sifive.com>
+
+ * config/riscv/linux-unwind.h: Include shadow-stack-unwind.h.
+ * config/riscv/shadow-stack-unwind.h
+ (_Unwind_Frames_Extra): Define.
+ (_Unwind_Frames_Increment): Define.
+
+2025-01-07 Keith Packard <keithp@keithp.com>
+
+ * config/m68k/fpgnulib.c (extenddfxf2): Simplify code by removing code
+ that should never execute. Fix denorm shift test and insert hidden bit
+ as needed.
+ (__truncxfdf2): Properly compue and shift the significant right.
+ * config/m68k/lb1sf68.S (__fixxfsi): Correct shift counts and simplify.
+ (QUIET_NAN): Make it a positive quiet NaN and fix return values to inject
+ sign properly.
+
+2025-01-06 Stafford Horne <shorne@gmail.com>
+
+ * config/or1k/lib1funcs.S: Add .note.GNU-stack section on linux.
+
+2024-12-12 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/118001
+ * config/avr/t-avr (LIB1ASMFUNCS): Add _fload_1, _fload_2,
+ _fload_3, _fload_4, _movmemf.
+ * config/avr/lib1funcs.S (.branch_plus): New .macro.
+ (__xload_1, __xload_2, __xload_3, __xload_4): When the address is
+ located in flash, then forward to...
+ (__fload_1, __fload_2, __fload_3, __fload_4): ...these new
+ functions, respectively.
+ (__movmemx_hi): When the address is located in flash, forward to...
+ (__movmemf_hi): ...this new function.
+
+2024-11-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgomp/117851
+ * configure.ac (extra_parts): Add crtoffloadtableS.o.
+ * Makefile.in (crtoffloadtableS$(objext)): New goal.
+ * configure: Regenerated.
+
+2024-11-29 Yury Khrustalev <yury.khrustalev@arm.com>
+
+ * config/aarch64/aarch64-unwind.h (_CHKFEAT_GCS): Add.
+
+2024-11-29 Yury Khrustalev <yury.khrustalev@arm.com>
+
+ * config/aarch64/aarch64-unwind.h (_Unwind_Frames_Extra): Update.
+ (_Unwind_Frames_Increment): Update
+
+2024-11-25 Sandra Loosemore <sloosemore@baylibre.com>
+
+ * config/nios2/*: Delete entire directory.
+ * config.host: Remove refences to nios2.
+ * unwind-dw2-fde-dip.c: Likewise.
+
+2024-11-19 Evgeny Karpov <evgeny.karpov@microsoft.com>
+
+ * config.host: Update.
+ * config/aarch64/t-mingw: New.
+
+2024-11-18 Jeff Law <jlaw@ventanamicro.com>
+
+ PR target/117628
+ * config/arm/freebsd-atomic.c (bool): Remove unnecessary typedef.
+ * config/arm/linux-atomic-64bit.c: Likewise.
+ * config/arm/linux-atomic.c: Likewise.
+ * config/nds32/linux-atomic.c: Likewise.
+ * config/nios2/linux-atomic.c: Likewise.
+
+2024-11-18 Jeff Law <jlaw@ventanamicro.com>
+
+ PR target/117628
+ * config/csky/linux-atomic.c (bool): Remove unnecessary typedef.
+ * unwind-arm-common.inc (bool): Similarly.
+
+2024-11-17 John David Anglin <danglin@gcc.gnu.org>
+
+ PR target/117627
+ * config/pa/linux-atomic.c: Remove typedef for bool type.
+
+2024-11-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgcc/117624
+ * libgcc2.c (INFINITY): Add #undef before #define.
+
+2024-11-14 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * config/aarch64/aarch64-asm.h (FEATURE_1_GCS): Define.
+ (GCS_FLAG): Define if GCS is enabled.
+ (GNU_PROPERTY): Add GCS_FLAG.
+
+2024-11-14 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * config/aarch64/aarch64-unwind.h (_Unwind_Frames_Extra): Update.
+ (_Unwind_Frames_Increment): Define.
+
+2024-10-25 Jakub Jelinek <jakub@redhat.com>
+
+ * crtstuff.c: Remove trailing whitespace.
+ * libgcov.h: Likewise.
+ * config/alpha/crtfastmath.c: Likewise.
+ * config/alpha/vms-gcc_shell_handler.c: Likewise.
+ * config/alpha/vms-unwind.h: Likewise.
+ * config/pa/linux-atomic.c: Likewise.
+ * config/pa/linux-unwind.h: Likewise.
+ * config/pa/quadlib.c: Likewise.
+ * config/pa/fptr.c: Likewise.
+ * config/s390/32/_fixsfdi.c: Likewise.
+ * config/s390/32/_fixunssfdi.c: Likewise.
+ * config/s390/32/_fixunsdfdi.c: Likewise.
+ * config/c6x/pr-support.c: Likewise.
+ * config/lm32/_udivsi3.c: Likewise.
+ * config/lm32/libgcc_lm32.h: Likewise.
+ * config/lm32/_udivmodsi4.c: Likewise.
+ * config/lm32/_mulsi3.c: Likewise.
+ * config/lm32/_modsi3.c: Likewise.
+ * config/lm32/_umodsi3.c: Likewise.
+ * config/lm32/_divsi3.c: Likewise.
+ * config/darwin-crt3.c: Likewise.
+ * config/msp430/mpy.c: Likewise.
+ * config/ia64/tf-signs.c: Likewise.
+ * config/ia64/fde-vms.c: Likewise.
+ * config/ia64/unwind-ia64.c: Likewise.
+ * config/ia64/vms-unwind.h: Likewise.
+ * config/ia64/sfp-exceptions.c: Likewise.
+ * config/ia64/quadlib.c: Likewise.
+ * config/ia64/unwind-ia64.h: Likewise.
+ * config/rl78/vregs.h: Likewise.
+ * config/arm/bpabi.c: Likewise.
+ * config/arm/unwind-arm.c: Likewise.
+ * config/arm/pr-support.c: Likewise.
+ * config/arm/linux-atomic.c: Likewise.
+ * config/arm/bpabi-lib.h: Likewise.
+ * config/frv/frvend.c: Likewise.
+ * config/frv/cmovw.c: Likewise.
+ * config/frv/frvbegin.c: Likewise.
+ * config/frv/cmovd.c: Likewise.
+ * config/frv/cmovh.c: Likewise.
+ * config/aarch64/cpuinfo.c: Likewise.
+ * config/i386/crtfastmath.c: Likewise.
+ * config/i386/cygming-crtend.c: Likewise.
+ * config/i386/32/tf-signs.c: Likewise.
+ * config/i386/crtprec.c: Likewise.
+ * config/i386/sfp-exceptions.c: Likewise.
+ * config/i386/w32-unwind.h: Likewise.
+ * config/m32r/initfini.c: Likewise.
+ * config/sparc/crtfastmath.c: Likewise.
+ * config/gcn/amdgcn_veclib.h: Likewise.
+ * config/nios2/linux-atomic.c: Likewise.
+ * config/nios2/linux-unwind.h: Likewise.
+ * config/nios2/lib2-mul.c: Likewise.
+ * config/nios2/lib2-nios2.h: Likewise.
+ * config/xtensa/unwind-dw2-xtensa.c: Likewise.
+ * config/rs6000/darwin-fallback.c: Likewise.
+ * config/rs6000/ibm-ldouble.c: Likewise.
+ * config/rs6000/sfp-machine.h: Likewise.
+ * config/rs6000/darwin-asm.h: Likewise.
+ * config/rs6000/darwin-crt2.c: Likewise.
+ * config/rs6000/aix-unwind.h: Likewise.
+ * config/rs6000/sfp-exceptions.c: Likewise.
+ * config/gthr-vxworks.c: Likewise.
+ * config/riscv/atomic.c: Likewise.
+ * config/visium/memcpy.c: Likewise.
+ * config/darwin-crt-tm.c: Likewise.
+ * config/stormy16/lib2funcs.c: Likewise.
+ * config/arc/ieee-754/divtab-arc-sf.c: Likewise.
+ * config/arc/ieee-754/divtab-arc-df.c: Likewise.
+ * config/arc/initfini.c: Likewise.
+ * config/sol2/gmon.c: Likewise.
+ * config/microblaze/divsi3_table.c: Likewise.
+ * config/m68k/fpgnulib.c: Likewise.
+ * libgcov-driver.c: Likewise.
+ * unwind-dw2.c: Likewise.
+ * fp-bit.c: Likewise.
+ * dfp-bit.h: Likewise.
+ * dfp-bit.c: Likewise.
+ * libgcov-driver-system.c: Likewise.
+
+2024-10-24 David Malcolm <dmalcolm@redhat.com>
+ Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR other/116613
+ * libgcov-util.c: Add #define INCLUDE_MEMORY.
+
+2024-10-17 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * config/aarch64/t-aarch64: Always use -Werror
+ -Wno-prio-ctor-dtor.
+
+2024-10-17 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * config/aarch64/cpuinfo.c (__init_cpu_features_resolver): Add
+ prototype.
+ (__init_cpu_features): Likewise.
+
+2024-10-17 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * config/aarch64/lse.S: Undefine L() macro.
+
+2024-10-14 Yangyu Chen <chenyangyu@isrc.iscas.ac.cn>
+
+ * config/riscv/feature_bits.c (__init_riscv_features_bits_linux):
+ Add detailed comments on processing implied extensions.
+
+2024-10-14 Kito Cheng <kito.cheng@sifive.com>
+
+ * config/riscv/feature_bits.c: New.
+ * config/riscv/t-elf (LIB2ADD): Add feature_bits.c.
+
+2024-10-10 Sébastien Michelland <sebastien.michelland@lcis.grenoble-inp.fr>
+
+ PR target/29845
+ * config.host (sh-*-elf*): Replace fdpbit with softfp.
+ * config/sh/sfp-machine.h: New file.
+
+2024-10-04 Tsung Chun Lin <tclin914@gmail.com>
+
+ * config/riscv/save-restore.S: Fix .cfi_offset for saving ra in
+ __riscv_save_[0-3] on ilp32e.
+
+2024-10-01 Tsung Chun Lin <tclin914@gmail.com>
+
+ * config/riscv/save-restore.S: Fix .cfi_offset for
+ __riscv_save_[0-3] on RV32.
+
+2024-09-27 Matthieu Longo <matthieu.longo@arm.com>
+
+ * config/aarch64/aarch64-unwind.h: Fix header path.
+
+2024-09-27 Mark Mentovai <mark@mentovai.com>
+
+ PR target/116809
+ * config.host: Don't build legacy libgcc_s.1 on macOS 14.
+
+2024-09-27 Jim Lin <jim@andestech.com>
+
+ * config/riscv/save-restore.S: Check with __riscv_abi_rve rather than
+ __riscv_32e.
+
+2024-09-26 Nathaniel Shead <nathanieloshead@gmail.com>
+
+ PR libstdc++/115126
+ * gthr-posix.h (__GTHREAD_ALWAYS_INLINE): New macro.
+ (__GTHREAD_INLINE): New macro.
+ (__gthread_active): Convert from variable to (hidden) function.
+ (__gthread_active_p): Mark as __GTHREAD_INLINE instead of
+ static; make visibility("hidden") when it has a static local
+ variable.
+ (__gthread_trigger): Mark as __GTHREAD_INLINE instead of static.
+ (__gthread_create): Likewise.
+ (__gthread_join): Likewise.
+ (__gthread_detach): Likewise.
+ (__gthread_equal): Likewise.
+ (__gthread_self): Likewise.
+ (__gthread_yield): Likewise.
+ (__gthread_once): Likewise.
+ (__gthread_key_create): Likewise.
+ (__gthread_key_delete): Likewise.
+ (__gthread_getspecific): Likewise.
+ (__gthread_setspecific): Likewise.
+ (__gthread_mutex_init_function): Likewise.
+ (__gthread_mutex_destroy): Likewise.
+ (__gthread_mutex_lock): Likewise.
+ (__gthread_mutex_trylock): Likewise.
+ (__gthread_mutex_timedlock): Likewise.
+ (__gthread_mutex_unlock): Likewise.
+ (__gthread_recursive_mutex_init_function): Likewise.
+ (__gthread_recursive_mutex_lock): Likewise.
+ (__gthread_recursive_mutex_trylock): Likewise.
+ (__gthread_recursive_mutex_timedlock): Likewise.
+ (__gthread_recursive_mutex_unlock): Likewise.
+ (__gthread_recursive_mutex_destroy): Likewise.
+ (__gthread_cond_init_function): Likewise.
+ (__gthread_cond_broadcast): Likewise.
+ (__gthread_cond_signal): Likewise.
+ (__gthread_cond_wait): Likewise.
+ (__gthread_cond_timedwait): Likewise.
+ (__gthread_cond_wait_recursive): Likewise.
+ (__gthread_cond_destroy): Likewise.
+ (__gthread_rwlock_rdlock): Likewise.
+ (__gthread_rwlock_tryrdlock): Likewise.
+ (__gthread_rwlock_wrlock): Likewise.
+ (__gthread_rwlock_trywrlock): Likewise.
+ (__gthread_rwlock_unlock): Likewise.
+ * gthr-single.h: (__GTHREAD_ALWAYS_INLINE): New macro.
+ (__GTHREAD_INLINE): New macro.
+ (__gthread_active_p): Mark as __GTHREAD_INLINE instead of static.
+ (__gthread_once): Likewise.
+ (__gthread_key_create): Likewise.
+ (__gthread_key_delete): Likewise.
+ (__gthread_getspecific): Likewise.
+ (__gthread_setspecific): Likewise.
+ (__gthread_mutex_destroy): Likewise.
+ (__gthread_mutex_lock): Likewise.
+ (__gthread_mutex_trylock): Likewise.
+ (__gthread_mutex_unlock): Likewise.
+ (__gthread_recursive_mutex_lock): Likewise.
+ (__gthread_recursive_mutex_trylock): Likewise.
+ (__gthread_recursive_mutex_unlock): Likewise.
+ (__gthread_recursive_mutex_destroy): Likewise.
+
+2024-09-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR target/116809
+ * config.host: Build legacy libgcc_s.1 on hosts before macOS 15.
+ * config/i386/t-darwin: Remove reference to legacy libgcc_s.1
+ * config/rs6000/t-darwin: Likewise.
+ * config/t-darwin-libgccs1: New file.
+
+2024-09-23 Matthieu Longo <matthieu.longo@arm.com>
+
+ * config/aarch64/aarch64-asm.h (PACIASP): Replace SPARC CFI
+ directive by AArch64 one.
+ (AUTIASP): Same.
+
+2024-09-23 Matthieu Longo <matthieu.longo@arm.com>
+
+ * Makefile.in: New target for symbolic link to md-unwind-def.h
+ * config.host: New parameter md_unwind_def_header. Set it to
+ aarch64/aarch64-unwind-def.h for AArch64 targets, or no-unwind.h
+ by default.
+ * config/aarch64/aarch64-unwind.h
+ (aarch64_pointer_auth_key): Move to aarch64-unwind-def.h
+ (aarch64_cie_aug_handler): Update.
+ (aarch64_arch_extension_frame_init): Update.
+ (aarch64_demangle_return_addr): Update.
+ * configure.ac: New substitute variable md_unwind_def_header.
+ * unwind-dw2.h (defined): MD_ARCH_FRAME_STATE_T.
+ * config/aarch64/aarch64-unwind-def.h: New file.
+ * configure: Regenerate.
+ * config/no-unwind.h: Updated comment
+
+2024-09-23 Matthieu Longo <matthieu.longo@arm.com>
+
+ * config/aarch64/aarch64-unwind.h
+ (MD_FRAME_LOCAL_REGISTER_P): new handler checking whether a register
+ from the current context needs to be skipped before installation into
+ the target context.
+ (aarch64_frame_local_register): Likewise.
+ * unwind-dw2.c (uw_install_context_1): use MD_FRAME_LOCAL_REGISTER_P.
+
+2024-09-23 Matthieu Longo <matthieu.longo@arm.com>
+
+ * config/aarch64/aarch64-unwind.h
+ (AARCH64_DWARF_RA_STATE_MASK): The mask for RA state register.
+ (aarch64_ra_signing_method_t): The diversifiers used to sign a
+ function's return address.
+ (aarch64_pointer_auth_key): The key used to sign a function's
+ return address.
+ (aarch64_cie_signed_with_b_key): Deleted as the signing key is
+ available now in _Unwind_FrameState.
+ (MD_ARCH_EXTENSION_CIE_AUG_HANDLER): New CIE augmentation string
+ handler for architecture extensions.
+ (MD_ARCH_EXTENSION_FRAME_INIT): New architecture-extension
+ initialization routine for DWARF frame state and context before
+ execution of DWARF instructions.
+ (aarch64_context_ra_state_get): Read RA state register from CONTEXT.
+ (aarch64_ra_state_get): Read RA state register from FS.
+ (aarch64_ra_state_set): Write RA state register into FS.
+ (aarch64_ra_state_toggle): Toggle RA state register in FS.
+ (aarch64_cie_aug_handler): Handler AArch64 augmentation strings.
+ (aarch64_arch_extension_frame_init): Initialize defaults for the
+ signing key (PAUTH_KEY_A), and RA state register (RA_no_signing).
+ (aarch64_demangle_return_addr): Rely on the frame registers and
+ the signing_key attribute in _Unwind_FrameState.
+ * unwind-dw2-execute_cfa.h:
+ Use the right alias DW_CFA_AARCH64_negate_ra_state for __aarch64__
+ instead of DW_CFA_GNU_window_save.
+ (DW_CFA_AARCH64_negate_ra_state): Save the signing method in RA
+ state register. Toggle RA state register without resetting 'how'
+ to REG_UNSAVED.
+ * unwind-dw2.c:
+ (extract_cie_info): Save the signing key in the current
+ _Unwind_FrameState while parsing the augmentation data.
+ (uw_frame_state_for): Reset some attributes related to architecture
+ extensions in _Unwind_FrameState.
+ (uw_update_context): Move authentication code to AArch64 unwinding.
+ * unwind-dw2.h (enum register_rule): Give a name to the existing
+ enum for the register rules, and replace 'unsigned char' by 'enum
+ register_rule' to facilitate debugging in GDB.
+ (_Unwind_FrameState): Add a new architecture-extension attribute
+ to store the signing key.
+
+2024-09-22 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config.host: From macOS 11, limit earliest macOS support
+ to macOS 11.
+ * config/t-darwin-min-11: New file.
+
+2024-08-27 YunQiang Su <syq@gcc.gnu.org>
+
+ * config/mips/lib1funcs.S: Includes mips16.S.
+
2024-06-10 Jan Beulich <jbeulich@suse.com>
* config/aarch64/cpuinfo.c: Provide AT_HWCAP2.
@@ -13770,7 +14493,7 @@
shared-object.mk, siditi-object.mk, static-object.mk: New files.
* configure: Generated.
-Copyright (C) 2007-2024 Free Software Foundation, Inc.
+Copyright (C) 2007-2025 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 0e46e9e..0719fd0 100644
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -1,6 +1,6 @@
# Makefile.in
-# Copyright (C) 2005-2024 Free Software Foundation, Inc.
+# Copyright (C) 2005-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
@@ -47,6 +47,7 @@ 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_def_header = @md_unwind_def_header@
md_unwind_header = @md_unwind_header@
sfp_machine_header = @sfp_machine_header@
thread_header = @thread_header@
@@ -358,13 +359,16 @@ SHLIBUNWIND_INSTALL =
# Create links to files specified in config.host.
-LIBGCC_LINKS = enable-execute-stack.c unwind.h md-unwind-support.h \
+LIBGCC_LINKS = enable-execute-stack.c \
+ unwind.h md-unwind-def.h md-unwind-support.h \
sfp-machine.h gthr-default.h
enable-execute-stack.c: $(srcdir)/$(enable_execute_stack)
-$(LN_S) $< $@
unwind.h: $(srcdir)/$(unwind_header)
-$(LN_S) $< $@
+md-unwind-def.h: $(srcdir)/config/$(md_unwind_def_header)
+ -$(LN_S) $< $@
md-unwind-support.h: $(srcdir)/config/$(md_unwind_header)
-$(LN_S) $< $@
sfp-machine.h: $(srcdir)/config/$(sfp_machine_header)
@@ -1060,6 +1064,9 @@ crtoffloadend$(objext): $(srcdir)/offloadstuff.c
crtoffloadtable$(objext): $(srcdir)/offloadstuff.c
$(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $< -DCRT_TABLE
+
+crtoffloadtableS$(objext): $(srcdir)/offloadstuff.c
+ $(crt_compile) $(CRTSTUFF_T_CFLAGS_S) -c $< -DCRT_TABLE
endif
ifeq ($(enable_vtable_verify),yes)
diff --git a/libgcc/c++-minimal/README b/libgcc/c++-minimal/README
deleted file mode 100644
index 832f126..0000000
--- a/libgcc/c++-minimal/README
+++ /dev/null
@@ -1,2 +0,0 @@
-Minimal hacked-up version of some C++ support for offload devices, until we
-have libstdc++-v3/libsupc++ proper.
diff --git a/libgcc/c++-minimal/guard.c b/libgcc/c++-minimal/guard.c
deleted file mode 100644
index 02c67bc..0000000
--- a/libgcc/c++-minimal/guard.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* 'libstdc++-v3/libsupc++/guard.cc' for offload devices, until we have
- libstdc++-v3/libsupc++ proper.
-
- Copyright (C) 2002-2024 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/>. */
-
-#if defined __AMDGCN__
-#elif defined __nvptx__
-#else
-# error not ported
-#endif
-
-#include "../../libstdc++-v3/config/cpu/generic/cxxabi_tweaks.h"
-
-/* Copy'n'paste/edit from 'libstdc++-v3/libsupc++/cxxabi.h'. */
-
-int
-__cxa_guard_acquire(__guard*);
-
-void
-__cxa_guard_release(__guard*);
-
-void
-__cxa_guard_abort(__guard*);
-
-/* Copy'n'paste/edit from 'libstdc++-v3/libsupc++/guard.cc'. */
-
-#undef _GLIBCXX_GUARD_TEST_AND_ACQUIRE
-#undef _GLIBCXX_GUARD_SET_AND_RELEASE
-#define _GLIBCXX_GUARD_SET_AND_RELEASE(G) _GLIBCXX_GUARD_SET (G)
-
-static inline int
-init_in_progress_flag(__guard* g)
-{ return ((char *)g)[1]; }
-
-static inline void
-set_init_in_progress_flag(__guard* g, int v)
-{ ((char *)g)[1] = v; }
-
-static inline void
-throw_recursive_init_exception(void)
-{
- // Use __builtin_trap so we don't require abort().
- __builtin_trap();
-}
-
-// acquire() is a helper function used to acquire guard if thread support is
-// not compiled in or is compiled in but not enabled at run-time.
-static int
-acquire(__guard *g)
-{
- // Quit if the object is already initialized.
- if (_GLIBCXX_GUARD_TEST(g))
- return 0;
-
- if (init_in_progress_flag(g))
- throw_recursive_init_exception();
-
- set_init_in_progress_flag(g, 1);
- return 1;
-}
-
-int __cxa_guard_acquire (__guard *g)
-{
- return acquire (g);
-}
-
-void __cxa_guard_abort (__guard *g)
-{
- set_init_in_progress_flag(g, 0);
-}
-
-void __cxa_guard_release (__guard *g)
-{
- set_init_in_progress_flag(g, 0);
- _GLIBCXX_GUARD_SET_AND_RELEASE (g);
-}
diff --git a/libgcc/config.host b/libgcc/config.host
index 9fae51d..d36f0e3 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -1,5 +1,5 @@
# libgcc host-specific configuration file.
-# Copyright (C) 1997-2024 Free Software Foundation, Inc.
+# Copyright (C) 1997-2025 Free Software Foundation, Inc.
#This file is part of GCC.
@@ -51,8 +51,10 @@
# If either is set, EXTRA_PARTS and
# EXTRA_MULTILIB_PARTS inherited from the GCC
# subdirectory will be ignored.
-# md_unwind_header The name of a header file defining
-# MD_FALLBACK_FRAME_STATE_FOR.
+# md_unwind_def_header The name of a header file defining architecture
+# -specific frame information types for unwinding.
+# md_unwind_header The name of a header file defining architecture
+# -specific handlers used in the unwinder.
# sfp_machine_header The name of a sfp-machine.h header file for soft-fp.
# Defaults to "$cpu_type/sfp-machine.h" if it exists,
# no-sfp-machine.h otherwise.
@@ -72,6 +74,7 @@ extra_parts=
tmake_file=
tm_file=
tm_define=
+md_unwind_def_header=no-unwind.h
md_unwind_header=no-unwind.h
unwind_header=unwind-generic.h
@@ -180,9 +183,6 @@ mips*-*-*)
nds32*-*)
cpu_type=nds32
;;
-nios2*-*-*)
- cpu_type=nios2
- ;;
or1k*-*-*)
cpu_type=or1k
;;
@@ -236,19 +236,25 @@ case ${host} in
esac
tmake_file="$tmake_file t-slibgcc-darwin"
case ${host} in
- *-*-darwin1[89]* | *-*-darwin2* )
- tmake_file="t-darwin-min-8 $tmake_file"
+ x86_64-*-darwin2[0-2]*)
+ tmake_file="t-darwin-min-11 t-darwin-libgccs1 $tmake_file"
+ ;;
+ *-*-darwin2*)
+ tmake_file="t-darwin-min-11 $tmake_file"
+ ;;
+ *-*-darwin1[89]*)
+ tmake_file="t-darwin-min-8 t-darwin-libgccs1 $tmake_file"
;;
*-*-darwin9* | *-*-darwin1[0-7]*)
- tmake_file="t-darwin-min-5 $tmake_file"
+ tmake_file="t-darwin-min-5 t-darwin-libgccs1 $tmake_file"
;;
*-*-darwin[4-8]*)
- tmake_file="t-darwin-min-1 $tmake_file"
+ tmake_file="t-darwin-min-1 t-darwin-libgccs1 $tmake_file"
;;
*)
# Fall back to configuring for the oldest system known to work with
# all archs and the current sources.
- tmake_file="t-darwin-min-5 $tmake_file"
+ tmake_file="t-darwin-min-5 t-darwin-libgccs1 $tmake_file"
echo "Warning: libgcc configured to support macOS 10.5" 1>&2
;;
esac
@@ -286,7 +292,7 @@ case ${host} in
# machine-specific sections may refine and add to this
# configuration.
tmake_file="$tmake_file t-freebsd t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
- extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtbeginT.o crtendS.o"
case ${target_thread_file} in
posix)
tmake_file="${tmake_file} t-freebsd-thread"
@@ -403,6 +409,7 @@ aarch64*-*-elf | aarch64*-*-rtems*)
tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
tmake_file="${tmake_file} t-dfprules"
+ md_unwind_def_header=aarch64/aarch64-unwind-def.h
md_unwind_header=aarch64/aarch64-unwind.h
;;
aarch64*-*-freebsd*)
@@ -411,6 +418,7 @@ aarch64*-*-freebsd*)
tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
tmake_file="${tmake_file} t-dfprules"
+ md_unwind_def_header=aarch64/aarch64-unwind-def.h
md_unwind_header=aarch64/freebsd-unwind.h
;;
aarch64*-*-netbsd*)
@@ -418,6 +426,7 @@ aarch64*-*-netbsd*)
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
tmake_file="${tmake_file} t-dfprules"
+ md_unwind_def_header=aarch64/aarch64-unwind-def.h
md_unwind_header=aarch64/aarch64-unwind.h
;;
aarch64*-*-fuchsia*)
@@ -428,6 +437,7 @@ aarch64*-*-fuchsia*)
;;
aarch64*-*-linux*)
extra_parts="$extra_parts crtfastmath.o"
+ md_unwind_def_header=aarch64/aarch64-unwind-def.h
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"
@@ -437,6 +447,7 @@ aarch64*-*-linux*)
;;
aarch64*-*-gnu*)
extra_parts="$extra_parts crtfastmath.o"
+ md_unwind_def_header=aarch64/aarch64-unwind-def.h
md_unwind_header=aarch64/gnu-unwind.h
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
@@ -446,6 +457,7 @@ aarch64*-*-gnu*)
;;
aarch64*-*-vxworks7*)
extra_parts="$extra_parts crtfastmath.o"
+ md_unwind_def_header=aarch64/aarch64-unwind-def.h
md_unwind_header=aarch64/aarch64-unwind.h
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
tmake_file="${tmake_file} ${cpu_type}/t-lse"
@@ -460,10 +472,14 @@ aarch64-*-mingw*)
posix)
tmake_thr_file="mingw/t-mingw-pthread"
;;
+ mcf)
+ tmake_thr_file="mingw/t-mingw-mcfgthread"
+ ;;
esac
tmake_file="${tmake_file} ${cpu_type}/t-no-eh ${tmake_thr_file}"
tmake_file="${tmake_file} t-dfprules"
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+ tmake_file="${tmake_file} ${cpu_type}/t-mingw"
tmake_file="${tmake_file} ${cpu_type}/t-lse"
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
;;
@@ -891,7 +907,7 @@ i[34567]86-*-mingw*)
tmake_thr_file="mingw/t-mingw-pthread"
;;
mcf)
- tmake_thr_file="i386/t-mingw-mcfgthread"
+ tmake_thr_file="mingw/t-mingw-mcfgthread"
;;
esac
# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
@@ -918,7 +934,7 @@ x86_64-*-mingw*)
tmake_thr_file="mingw/t-mingw-pthread"
;;
mcf)
- tmake_thr_file="i386/t-mingw-mcfgthread"
+ tmake_thr_file="mingw/t-mingw-mcfgthread"
;;
esac
# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
@@ -1183,15 +1199,6 @@ nds32*-elf*)
;;
esac
;;
-nios2-*-linux*)
- tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-eh-dw2-dip t-slibgcc-libgcc"
- tm_file="$tm_file nios2/elf-lib.h"
- md_unwind_header=nios2/linux-unwind.h
- ;;
-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 or1k/t-crtstuff"
tmake_file="$tmake_file t-softfp-sfdf t-softfp"
@@ -1399,7 +1406,7 @@ s390x-ibm-tpf*)
md_unwind_header=s390/tpf-unwind.h
;;
sh-*-elf* | sh[12346l]*-*-elf*)
- tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
+ tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-softfp-sfdf t-softfp"
extra_parts="$extra_parts crt1.o crti.o crtn.o crtbeginS.o crtendS.o \
libic_invalidate_array_4-100.a \
libic_invalidate_array_4-200.a \
diff --git a/libgcc/config/aarch64/__aarch64_have_sme.c b/libgcc/config/aarch64/__aarch64_have_sme.c
index 25ea01a..0980d3a 100644
--- a/libgcc/config/aarch64/__aarch64_have_sme.c
+++ b/libgcc/config/aarch64/__aarch64_have_sme.c
@@ -1,5 +1,5 @@
/* Initializer for SME support.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/aarch64/__arm_sme_state.S b/libgcc/config/aarch64/__arm_sme_state.S
index 1fbb8c1..cf01940 100644
--- a/libgcc/config/aarch64/__arm_sme_state.S
+++ b/libgcc/config/aarch64/__arm_sme_state.S
@@ -1,5 +1,5 @@
/* Support routine for SME.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/aarch64/__arm_tpidr2_restore.S b/libgcc/config/aarch64/__arm_tpidr2_restore.S
index 5088c86..7730c7e 100644
--- a/libgcc/config/aarch64/__arm_tpidr2_restore.S
+++ b/libgcc/config/aarch64/__arm_tpidr2_restore.S
@@ -1,5 +1,5 @@
/* Support routine for SME.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/aarch64/__arm_tpidr2_save.S b/libgcc/config/aarch64/__arm_tpidr2_save.S
index 2466b58..beeedaa 100644
--- a/libgcc/config/aarch64/__arm_tpidr2_save.S
+++ b/libgcc/config/aarch64/__arm_tpidr2_save.S
@@ -1,5 +1,5 @@
/* Support routine for SME.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/aarch64/__arm_za_disable.S b/libgcc/config/aarch64/__arm_za_disable.S
index c372fcf..e223a89 100644
--- a/libgcc/config/aarch64/__arm_za_disable.S
+++ b/libgcc/config/aarch64/__arm_za_disable.S
@@ -1,5 +1,5 @@
/* Support routine for SME.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/aarch64/aarch64-asm.h b/libgcc/config/aarch64/aarch64-asm.h
index 83c2e59..346100f 100644
--- a/libgcc/config/aarch64/aarch64-asm.h
+++ b/libgcc/config/aarch64/aarch64-asm.h
@@ -1,5 +1,5 @@
/* AArch64 asm definitions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -22,6 +22,9 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#ifndef AARCH64_ASM_H
+#define AARCH64_ASM_H
+
#include "auto-target.h"
#define L(label) .L ## label
@@ -38,6 +41,7 @@
#define FEATURE_1_AND 0xc0000000
#define FEATURE_1_BTI 1
#define FEATURE_1_PAC 2
+#define FEATURE_1_GCS 4
/* Supported features based on the code generation options. */
#if defined(__ARM_FEATURE_BTI_DEFAULT)
@@ -50,14 +54,20 @@
#if __ARM_FEATURE_PAC_DEFAULT & 3
# define PAC_FLAG FEATURE_1_PAC
-# define PACIASP hint 25; .cfi_window_save
-# define AUTIASP hint 29; .cfi_window_save
+# define PACIASP hint 25; .cfi_negate_ra_state
+# define AUTIASP hint 29; .cfi_negate_ra_state
#else
# define PAC_FLAG 0
# define PACIASP
# define AUTIASP
#endif
+#if __ARM_FEATURE_GCS_DEFAULT
+# define GCS_FLAG FEATURE_1_GCS
+#else
+# define GCS_FLAG 0
+#endif
+
#ifdef __ELF__
#define HIDDEN(name) .hidden name
#define SYMBOL_SIZE(name) .size name, .-name
@@ -88,8 +98,8 @@
.previous
/* Add GNU property note if built with branch protection. */
-# if (BTI_FLAG|PAC_FLAG) != 0
-GNU_PROPERTY (FEATURE_1_AND, BTI_FLAG|PAC_FLAG)
+# if (BTI_FLAG|PAC_FLAG|GCS_FLAG) != 0
+GNU_PROPERTY (FEATURE_1_AND, BTI_FLAG|PAC_FLAG|GCS_FLAG)
# endif
#endif
@@ -106,3 +116,5 @@ GNU_PROPERTY (FEATURE_1_AND, BTI_FLAG|PAC_FLAG)
#define END(name) \
.cfi_endproc; \
SYMBOL_SIZE(name)
+
+#endif
diff --git a/libgcc/config/nios2/elf-lib.h b/libgcc/config/aarch64/aarch64-unwind-def.h
index e0d2bfc..450822b 100644
--- a/libgcc/config/nios2/elf-lib.h
+++ b/libgcc/config/aarch64/aarch64-unwind-def.h
@@ -1,5 +1,7 @@
-/* Target macros for the Nios II port of GCC.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Contributed by Arm 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
@@ -20,5 +22,20 @@ 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 CRT_GET_RFIB_DATA(dbase) \
- ({ extern void *_gp_got; (dbase) = &_gp_got; })
+#if !defined (AARCH64_UNWIND_DEF_H) && !defined (__ILP32__)
+#define AARCH64_UNWIND_DEF_H
+
+/* The key used to sign a function's return address. */
+typedef enum {
+ AARCH64_PAUTH_KEY_A,
+ AARCH64_PAUTH_KEY_B,
+} __attribute__((packed)) aarch64_pointer_auth_key;
+
+typedef struct
+{
+ aarch64_pointer_auth_key signing_key;
+} _AArch64Ext_Unwind_FrameState;
+
+#define MD_ARCH_FRAME_STATE_T _AArch64Ext_Unwind_FrameState
+
+#endif /* defined AARCH64_UNWIND_DEF_H && defined __ILP32__ */
diff --git a/libgcc/config/aarch64/aarch64-unwind.h b/libgcc/config/aarch64/aarch64-unwind.h
index daf9662..d730c70 100644
--- a/libgcc/config/aarch64/aarch64-unwind.h
+++ b/libgcc/config/aarch64/aarch64-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GCC.
@@ -25,52 +25,152 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#if !defined (AARCH64_UNWIND_H) && !defined (__ILP32__)
#define AARCH64_UNWIND_H
-#define DWARF_REGNUM_AARCH64_RA_STATE 34
+#include "config/aarch64/aarch64-unwind-def.h"
+
+#include "ansidecl.h"
+#include <stdbool.h>
+
+#define AARCH64_DWARF_REGNUM_RA_STATE 34
+#define AARCH64_DWARF_RA_STATE_MASK 0x1
+
+/* The diversifiers used to sign a function's return address. */
+typedef enum
+{
+ aarch64_ra_no_signing = 0x0,
+ aarch64_ra_signing_sp = 0x1,
+} __attribute__((packed)) aarch64_ra_signing_method_t;
+
+#define MD_ARCH_EXTENSION_CIE_AUG_HANDLER(fs, aug) \
+ aarch64_cie_aug_handler (fs, aug)
+
+#define MD_ARCH_EXTENSION_FRAME_INIT(context, fs) \
+ aarch64_arch_extension_frame_init (context, fs)
#define MD_DEMANGLE_RETURN_ADDR(context, fs, addr) \
aarch64_demangle_return_addr (context, fs, addr)
-static inline int
-aarch64_cie_signed_with_b_key (struct _Unwind_Context *context)
+#define MD_FRAME_LOCAL_REGISTER_P(reg) \
+ aarch64_frame_local_register (reg)
+
+static inline aarch64_ra_signing_method_t
+aarch64_context_ra_state_get (struct _Unwind_Context *context)
+{
+ const int index = AARCH64_DWARF_REGNUM_RA_STATE;
+ return _Unwind_GetGR (context, index) & AARCH64_DWARF_RA_STATE_MASK;
+}
+
+static inline aarch64_ra_signing_method_t
+aarch64_fs_ra_state_get (_Unwind_FrameState const *fs)
+{
+ const int index = AARCH64_DWARF_REGNUM_RA_STATE;
+ return fs->regs.reg[index].loc.offset & AARCH64_DWARF_RA_STATE_MASK;
+}
+
+static inline void
+aarch64_fs_ra_state_set (_Unwind_FrameState *fs,
+ aarch64_ra_signing_method_t signing_method)
+{
+ fs->regs.reg[AARCH64_DWARF_REGNUM_RA_STATE].loc.offset = signing_method;
+}
+
+static inline void
+aarch64_fs_ra_state_toggle (_Unwind_FrameState *fs)
{
- const struct dwarf_fde *fde = _Unwind_Find_FDE (context->bases.func,
- &context->bases);
- if (fde != NULL)
+ /* /!\ Mixing DW_CFA_val_expression with DW_CFA_AARCH64_negate_ra_state will
+ result in undefined behavior (likely an unwinding failure), as the
+ chronology of the DWARF directives will be broken. */
+ gcc_assert (fs->regs.how[AARCH64_DWARF_REGNUM_RA_STATE] == REG_ARCHEXT);
+
+ aarch64_ra_signing_method_t signing_method = aarch64_fs_ra_state_get (fs);
+ gcc_assert (signing_method == aarch64_ra_no_signing
+ || signing_method == aarch64_ra_signing_sp);
+ aarch64_fs_ra_state_set (fs, (signing_method == aarch64_ra_no_signing)
+ ? aarch64_ra_signing_sp
+ : aarch64_ra_no_signing);
+}
+
+/* CIE handler for custom augmentation string. */
+static inline bool
+aarch64_cie_aug_handler (_Unwind_FrameState *fs, unsigned char aug)
+{
+ /* AArch64 B-key pointer authentication. */
+ if (aug == 'B')
{
- const struct dwarf_cie *cie = get_cie (fde);
- if (cie != NULL)
- {
- const unsigned char *aug_str = cie->augmentation;
- return __builtin_strchr ((const char *) aug_str,
- 'B') == NULL ? 0 : 1;
- }
+ fs->regs.arch_fs.signing_key = AARCH64_PAUTH_KEY_B;
+ return true;
}
- return 0;
+ return false;
+}
+
+/* At the entrance of a new frame, some cached information from the CIE/FDE,
+ and registers values related to architectural extensions require a default
+ initialization.
+ If any of those values related to architecture extensions had to be saved
+ for the next frame, it should be done via the architecture extensions handler
+ MD_FROB_UPDATE_CONTEXT in uw_update_context_1 (libgcc/unwind-dw2.c). */
+static inline void
+aarch64_arch_extension_frame_init (struct _Unwind_Context *context ATTRIBUTE_UNUSED,
+ _Unwind_FrameState *fs)
+{
+ /* By default, DW_CFA_AARCH64_negate_ra_state assumes key A is being used
+ for signing. This can be overridden by adding 'B' to the augmentation
+ string. */
+ fs->regs.arch_fs.signing_key = AARCH64_PAUTH_KEY_A;
+
+ /* All registers are initially in state REG_UNSAVED, which indicates that
+ they inherit register values from the previous frame. However, the
+ return address starts every frame in the "unsigned" state. It also
+ starts every frame in a state that supports the original toggle-based
+ DW_CFA_AARCH64_negate_ra_state method of controlling RA signing. */
+ fs->regs.how[AARCH64_DWARF_REGNUM_RA_STATE] = REG_ARCHEXT;
+ aarch64_fs_ra_state_set (fs, aarch64_ra_no_signing);
+}
+
+/* Before copying the current context to the target context, check whether
+ the register is local to this context and should not be forwarded. */
+static inline bool
+aarch64_frame_local_register(long reg)
+{
+ return (reg == AARCH64_DWARF_REGNUM_RA_STATE);
}
/* Do AArch64 private extraction on ADDR_WORD based on context info CONTEXT and
unwind frame info FS. If ADDR_WORD is signed, we do address authentication
- on it using CFA of current frame. */
+ on it using CFA of current frame.
+ Note: when DW_CFA_val_expression is used, FS only records the location of the
+ associated CFI program, rather than the value of the expression itself.
+ The CFI program is executed by uw_update_context when updating the context,
+ so the value of the expression must be taken from CONTEXT rather than FS. */
static inline void *
aarch64_demangle_return_addr (struct _Unwind_Context *context,
_Unwind_FrameState *fs,
_Unwind_Word addr_word)
{
void *addr = (void *)addr_word;
- const int reg = DWARF_REGNUM_AARCH64_RA_STATE;
-
- if (fs->regs.how[reg] == REG_UNSAVED)
- return addr;
-
- /* Return-address signing state is toggled by DW_CFA_GNU_window_save (where
- REG_UNSAVED/REG_UNSAVED_ARCHEXT means RA signing is disabled/enabled),
- or set by a DW_CFA_expression. */
- if (fs->regs.how[reg] == REG_UNSAVED_ARCHEXT
- || (_Unwind_GetGR (context, reg) & 0x1) != 0)
+ const int reg = AARCH64_DWARF_REGNUM_RA_STATE;
+
+ /* In libgcc, REG_ARCHEXT means that the RA state register was set by an
+ AArch64 DWARF instruction and contains a valid value, or is used to
+ describe the initial state set in aarch64_arch_extension_frame_init.
+ Return-address signing state is normally toggled by DW_CFA_AARCH64_negate
+ _ra_state (also knwon by its alias as DW_CFA_GNU_window_save).
+ However, RA state register can be set directly via DW_CFA_val_expression
+ too. GCC does not generate such CFI but some other compilers reportedly
+ do (see PR104689 for more details).
+ Any other value than REG_ARCHEXT should be interpreted as if the RA state
+ register is set by another DWARF instruction, and the value is fetchable
+ via _Unwind_GetGR. */
+ aarch64_ra_signing_method_t signing_method = aarch64_ra_no_signing;
+ if (fs->regs.how[reg] == REG_ARCHEXT)
+ signing_method = aarch64_fs_ra_state_get (fs);
+ else if (fs->regs.how[reg] != REG_UNSAVED)
+ signing_method = aarch64_context_ra_state_get (context);
+
+ if (signing_method == aarch64_ra_signing_sp)
{
_Unwind_Word salt = (_Unwind_Word) context->cfa;
- if (aarch64_cie_signed_with_b_key (context) != 0)
+ if (fs->regs.arch_fs.signing_key == AARCH64_PAUTH_KEY_B)
return __builtin_aarch64_autib1716 (addr, salt);
return __builtin_aarch64_autia1716 (addr, salt);
}
@@ -78,6 +178,8 @@ aarch64_demangle_return_addr (struct _Unwind_Context *context,
return addr;
}
+/* GCS enable flag for chkfeat instruction. */
+#define _CHKFEAT_GCS 1
/* SME runtime function local to libgcc, streaming compatible
and preserves more registers than the base PCS requires, but
we don't rely on that here. */
@@ -85,12 +187,66 @@ __attribute__ ((visibility ("hidden")))
void __libgcc_arm_za_disable (void);
/* Disable the SME ZA state in case an unwound frame used the ZA
- lazy saving scheme. */
+ lazy saving scheme. And unwind the GCS for EH. */
#undef _Unwind_Frames_Extra
#define _Unwind_Frames_Extra(x) \
do \
{ \
__libgcc_arm_za_disable (); \
+ if (__builtin_aarch64_chkfeat (_CHKFEAT_GCS) == 0) \
+ { \
+ for (_Unwind_Word n = (x); n != 0; n--) \
+ __builtin_aarch64_gcspopm (); \
+ } \
+ } \
+ while (0)
+
+/* On signal entry the OS places a token on the GCS that can be used to
+ verify the integrity of the GCS pointer on signal return. It also
+ places the signal handler return address (the restorer that calls the
+ signal return syscall) on the GCS so the handler can return.
+ Because of this token, each stack frame visited during unwinding has
+ exactly one corresponding entry on the GCS, so the frame count is
+ the number of entries that will have to be popped at EH return time.
+
+ Note: This depends on the GCS signal ABI of the OS.
+
+ When unwinding across a stack frame for each frame the corresponding
+ entry is checked on the GCS against the computed return address from
+ the normal stack. If they don't match then _URC_FATAL_PHASE2_ERROR
+ is returned. This check is omitted if
+
+ 1. GCS is disabled. Note: asynchronous GCS disable is supported here
+ if GCSPR and the GCS remains readable.
+ 2. Non-catchable exception where exception_class == 0. Note: the
+ pthread cancellation implementation in glibc sets exception_class
+ to 0 when the unwinder is used for cancellation cleanup handling,
+ so this allows the GCS to get out of sync during cancellation.
+ This weakens security but avoids an ABI break in glibc.
+ 3. Zero return address which marks the outermost stack frame.
+ 4. Signal stack frame, the GCS entry is an OS specific token then
+ with the top bit set.
+ */
+#undef _Unwind_Frames_Increment
+#define _Unwind_Frames_Increment(exc, context, frames) \
+ do \
+ { \
+ frames++; \
+ if (__builtin_aarch64_chkfeat (_CHKFEAT_GCS) != 0 \
+ || exc->exception_class == 0 \
+ || _Unwind_GetIP (context) == 0) \
+ break; \
+ const _Unwind_Word *gcs = __builtin_aarch64_gcspr (); \
+ if (_Unwind_IsSignalFrame (context)) \
+ { \
+ if (gcs[frames] >> 63 == 0) \
+ return _URC_FATAL_PHASE2_ERROR; \
+ } \
+ else \
+ { \
+ if (gcs[frames] != _Unwind_GetIP (context)) \
+ return _URC_FATAL_PHASE2_ERROR; \
+ } \
} \
while (0)
diff --git a/libgcc/config/aarch64/cpuinfo.c b/libgcc/config/aarch64/cpuinfo.c
index ec36d10..dda9dc6 100644
--- a/libgcc/config/aarch64/cpuinfo.c
+++ b/libgcc/config/aarch64/cpuinfo.c
@@ -1,5 +1,5 @@
/* CPU feature detection for AArch64 architecture.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -16,7 +16,7 @@
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
@@ -339,25 +339,6 @@ __init_cpu_features_constructor (unsigned long hwcap,
setCPUFeature(FEAT_SME_I64);
if (hwcap2 & HWCAP2_SME_F64F64)
setCPUFeature(FEAT_SME_F64);
- if (hwcap & HWCAP_CPUID)
- {
- unsigned long ftr;
-
- getCPUFeature(ID_AA64ISAR1_EL1, ftr);
- /* ID_AA64ISAR1_EL1.SPECRES >= 0b0001 */
- if (extractBits(ftr, 40, 4) >= 0x1)
- setCPUFeature(FEAT_PREDRES);
- /* ID_AA64ISAR1_EL1.LS64 >= 0b0001 */
- if (extractBits(ftr, 60, 4) >= 0x1)
- setCPUFeature(FEAT_LS64);
- /* ID_AA64ISAR1_EL1.LS64 >= 0b0010 */
- if (extractBits(ftr, 60, 4) >= 0x2)
- setCPUFeature(FEAT_LS64_V);
- /* ID_AA64ISAR1_EL1.LS64 >= 0b0011 */
- if (extractBits(ftr, 60, 4) >= 0x3)
- setCPUFeature(FEAT_LS64_ACCDATA);
- }
-
if (hwcap & HWCAP_FP)
{
setCPUFeature(FEAT_FP);
@@ -387,6 +368,7 @@ __init_cpu_features_constructor (unsigned long hwcap,
__atomic_store_n (&__aarch64_cpu_features.features, feat, __ATOMIC_RELAXED);
}
+void __init_cpu_features_resolver(unsigned long, const __ifunc_arg_t *);
void
__init_cpu_features_resolver(unsigned long hwcap, const __ifunc_arg_t *arg)
{
@@ -395,6 +377,7 @@ __init_cpu_features_resolver(unsigned long hwcap, const __ifunc_arg_t *arg)
__init_cpu_features_constructor(hwcap, arg);
}
+void __init_cpu_features(void);
void __attribute__ ((constructor))
__init_cpu_features(void)
{
diff --git a/libgcc/config/aarch64/crtfastmath.c b/libgcc/config/aarch64/crtfastmath.c
index 057c831..beaaec6 100644
--- a/libgcc/config/aarch64/crtfastmath.c
+++ b/libgcc/config/aarch64/crtfastmath.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2014-2025 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 52ca1bb..2d33160 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 67bcfab..fdd244d 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 96f316f..0dc800b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
Contributed by John Marino <gnugcc@marino.st>
This file is part of GCC.
diff --git a/libgcc/config/aarch64/gnu-unwind.h b/libgcc/config/aarch64/gnu-unwind.h
index d9e485a..ace46eb 100644
--- a/libgcc/config/aarch64/gnu-unwind.h
+++ b/libgcc/config/aarch64/gnu-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for GNU Hurd: aarch64.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/aarch64/libgcc-sme.ver b/libgcc/config/aarch64/libgcc-sme.ver
index c13644c..4c025b9 100644
--- a/libgcc/config/aarch64/libgcc-sme.ver
+++ b/libgcc/config/aarch64/libgcc-sme.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/aarch64/libgcc-softfp.ver b/libgcc/config/aarch64/libgcc-softfp.ver
index 9ba8570..3b392c9 100644
--- a/libgcc/config/aarch64/libgcc-softfp.ver
+++ b/libgcc/config/aarch64/libgcc-softfp.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
@@ -42,8 +42,14 @@ GCC_13.0.0 {
%inherit GCC_14.0.0 GCC_13.0.0
GCC_14.0.0 {
+ __mulbitint3
+ __divmodbitint4
+ __fixsfbitint
+ __fixdfbitint
__fixtfbitint
__floatbitintbf
__floatbitinthf
+ __floatbitintsf
+ __floatbitintdf
__floatbitinttf
}
diff --git a/libgcc/config/aarch64/linux-unwind.h b/libgcc/config/aarch64/linux-unwind.h
index 87c4586..e41ca6a 100644
--- a/libgcc/config/aarch64/linux-unwind.h
+++ b/libgcc/config/aarch64/linux-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 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
index 5da5cda..2a1315a 100644
--- a/libgcc/config/aarch64/lse-init.c
+++ b/libgcc/config/aarch64/lse-init.c
@@ -1,5 +1,5 @@
/* Out-of-line LSE atomics for AArch64 architecture, Init.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
Contributed by Linaro Ltd.
This file is part of GCC.
diff --git a/libgcc/config/aarch64/lse.S b/libgcc/config/aarch64/lse.S
index ecef470..cb24011 100644
--- a/libgcc/config/aarch64/lse.S
+++ b/libgcc/config/aarch64/lse.S
@@ -1,5 +1,5 @@
/* Out-of-line LSE atomics for AArch64 architecture.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
Contributed by Linaro Ltd.
This file is part of GCC.
@@ -54,6 +54,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "aarch64-asm.h"
#include "auto-target.h"
+/* L is defined in aarch64-asm.h for a different purpose than why we
+ use it here. */
+#undef L
+
/* Tell the assembler to accept LSE instructions. */
#ifdef HAVE_AS_LSE
.arch armv8-a+lse
diff --git a/libgcc/config/aarch64/sfp-exceptions.c b/libgcc/config/aarch64/sfp-exceptions.c
index 721661a..2580f24 100644
--- a/libgcc/config/aarch64/sfp-exceptions.c
+++ b/libgcc/config/aarch64/sfp-exceptions.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2012-2025 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 7fbb2a4..cc3116d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 0f3aa46..a89efe7 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GCC.
diff --git a/libgcc/config/aarch64/t-aarch64 b/libgcc/config/aarch64/t-aarch64
index b70e7b9..d4c5922 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# Contributed by ARM Ltd.
#
# This file is part of GCC.
@@ -30,3 +30,4 @@ LIB2ADDEH += \
$(srcdir)/config/aarch64/__arm_za_disable.S
SHLIB_MAPFILES += $(srcdir)/config/aarch64/libgcc-sme.ver
+LIBGCC2_CFLAGS += -Werror -Wno-prio-ctor-dtor
diff --git a/libgcc/config/aarch64/t-lse b/libgcc/config/aarch64/t-lse
index b935ae5..58908dc 100644
--- a/libgcc/config/aarch64/t-lse
+++ b/libgcc/config/aarch64/t-lse
@@ -1,5 +1,5 @@
# Out-of-line LSE atomics for AArch64 architecture.
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# Contributed by Linaro Ltd.
#
# This file is part of GCC.
diff --git a/libgcc/config/aarch64/t-mingw b/libgcc/config/aarch64/t-mingw
new file mode 100644
index 0000000..a72a2f7
--- /dev/null
+++ b/libgcc/config/aarch64/t-mingw
@@ -0,0 +1,2 @@
+# Bypass hidden attribute warnings in MinGW until it is implemented
+LIBGCC2_CFLAGS += -Wno-error=attributes
diff --git a/libgcc/config/aarch64/value-unwind.h b/libgcc/config/aarch64/value-unwind.h
index cc4f736..e1b564e 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 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 22e78a7..aee8b61 100644
--- a/libgcc/config/alpha/crtfastmath.c
+++ b/libgcc/config/alpha/crtfastmath.c
@@ -1,17 +1,17 @@
/*
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 Free Software Foundation, Inc.
* Contributed by Richard Henderson (rth@redhat.com)
*
* 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.
diff --git a/libgcc/config/alpha/libgcc-alpha-ldbl.ver b/libgcc/config/alpha/libgcc-alpha-ldbl.ver
index 90b903d..008bd61 100644
--- a/libgcc/config/alpha/libgcc-alpha-ldbl.ver
+++ b/libgcc/config/alpha/libgcc-alpha-ldbl.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# Copyright (C) 2006-2025 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 639e457..03086b6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/alpha/qrnnd.S b/libgcc/config/alpha/qrnnd.S
index 0745617..4280616 100644
--- a/libgcc/config/alpha/qrnnd.S
+++ b/libgcc/config/alpha/qrnnd.S
@@ -1,5 +1,5 @@
# Alpha 21064 __udiv_qrnnd
- # Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ # Copyright (C) 1992-2025 Free Software Foundation, Inc.
# This file is part of GCC.
diff --git a/libgcc/config/alpha/vms-dwarf2.S b/libgcc/config/alpha/vms-dwarf2.S
index 1e64489..f0f47da 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 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 e763c40..1887e78 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 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 f7ab8fc..2fc23d2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -59,7 +59,7 @@ get_dyn_handler_pointer (REG fp)
the handler_data field from there. This field contains the offset
from FP at which the address of the currently installed handler is
to be found. */
-
+
PDSCDEF * pd = PV_FOR (fp);
/* Procedure descriptor pointer for the live subprogram with FP as the frame
pointer, and to which _gcc_shell_handler is attached as a condition
@@ -79,11 +79,11 @@ get_dyn_handler_pointer (REG fp)
case PDSC$K_KIND_FP_STACK: /* [3.4.2 PD for stack frame procedures] */
handler_data_offset = 40;
break;
-
+
case PDSC$K_KIND_FP_REGISTER: /* [3.4.5 PD for reg frame procedures] */
handler_data_offset = 32;
break;
-
+
default:
handler_data_offset = 0;
break;
@@ -95,7 +95,7 @@ get_dyn_handler_pointer (REG fp)
/* Otherwise, fetch the fp offset at which the real handler address is to be
found, then fetch and return the latter in turn. */
-
+
handler_slot_offset = REG_AT ((REG)pd + handler_data_offset);
return (ADDR) REG_AT (fp + handler_slot_offset);
@@ -120,4 +120,4 @@ __gcc_shell_handler (struct chf$signal_array *sig_arr,
return ret;
}
-
+
diff --git a/libgcc/config/alpha/vms-unwind.h b/libgcc/config/alpha/vms-unwind.h
index fdd92a9..172e037 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -106,7 +106,7 @@ alpha_vms_fallback_frame_state (struct _Unwind_Context *context,
up if we're handed anything else. */
if (pkind != PDSC$K_KIND_FP_STACK && pkind != PDSC$K_KIND_FP_REGISTER)
return _URC_END_OF_STACK;
-
+
if (eh_debug)
printf ("FALLBACK: CTX FP = 0x%p, PV = 0x%p, EN = 0x%llx, RA = 0x%p\n",
ADDR_AT (context->reg[29]), pv, pv->pdsc$q_entry, context->ra);
@@ -149,7 +149,7 @@ alpha_vms_fallback_frame_state (struct _Unwind_Context *context,
status = LIB$GET_PREV_INVO_CONTEXT (&icb);
GIVEUP_ON_FAILURE (status);
- new_cfa = (ADDR) icb.libicb$q_ireg[30];
+ new_cfa = (ADDR) icb.libicb$q_ireg[30];
}
else
{
@@ -158,10 +158,10 @@ alpha_vms_fallback_frame_state (struct _Unwind_Context *context,
register value + frame size. Note that the frame base may differ
from CONTEXT->cfa, typically if the caller has performed dynamic
stack allocations. */
-
+
int base_reg = pv->pdsc$w_flags & PDSC$M_BASE_REG_IS_FP ? 29 : 30;
ADDR base_addr = ADDR_AT (context->reg[base_reg]);
-
+
new_cfa = base_addr + pv->pdsc$l_size;
}
@@ -201,7 +201,7 @@ alpha_vms_fallback_frame_state (struct _Unwind_Context *context,
for (i = 0, j = 0; i < 32; i++)
if ((1 << i) & pv->pdsc$l_ireg_mask)
UPDATE_FS_FOR_CFA_GR (fs, i, rsa_addr + 8 * ++j, new_cfa);
-
+
/* ??? floating point registers ? */
break;
@@ -214,10 +214,10 @@ alpha_vms_fallback_frame_state (struct _Unwind_Context *context,
fs->regs.how[RA_COLUMN] = REG_SAVED_REG;
fs->regs.reg[RA_COLUMN].loc.reg = pv->pdsc$b_save_ra;
-
+
fs->regs.how[29] = REG_SAVED_REG;
fs->regs.reg[29].loc.reg = pv->pdsc$b_save_fp;
-
+
break;
}
@@ -274,12 +274,12 @@ alpha_vms_fallback_frame_state (struct _Unwind_Context *context,
UPDATE_FS_FOR_CFA_GR (fs, 26, &mechargs->chf$q_mch_savr26, new_cfa);
UPDATE_FS_FOR_CFA_GR (fs, 27, &mechargs->chf$q_mch_savr27, new_cfa);
UPDATE_FS_FOR_CFA_GR (fs, 28, &mechargs->chf$q_mch_savr28, new_cfa);
-
+
/* Registers R2 to R7 are available from the rei frame pointer. */
-
+
for (i = 2; i <= 7; i ++)
UPDATE_FS_FOR_CFA_GR (fs, i, rei_frame_addr+(i - 2)*8, new_cfa);
-
+
/* ??? floating point registers ? */
}
diff --git a/libgcc/config/arc/asm.h b/libgcc/config/arc/asm.h
index 2c46499..21d9b67 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 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 1fa4567..5dc3258 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 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 2f9f440..206b00a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 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 535ea6c..cd884fb 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 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 8b915c1..17e6fe0 100644
--- a/libgcc/config/arc/divtab-arc700.c
+++ b/libgcc/config/arc/divtab-arc700.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 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 572f26d..f06500a 100644
--- a/libgcc/config/arc/dp-hack.h
+++ b/libgcc/config/arc/dp-hack.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 12ebb49..bc37545 100644
--- a/libgcc/config/arc/fp-hack.h
+++ b/libgcc/config/arc/fp-hack.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 00a0c72..64a6536 100644
--- a/libgcc/config/arc/ieee-754/adddf3.S
+++ b/libgcc/config/arc/ieee-754/adddf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 d654c25..2cf06f0 100644
--- a/libgcc/config/arc/ieee-754/addsf3.S
+++ b/libgcc/config/arc/ieee-754/addsf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 e0a8516..498d58e 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 c5fb1ad..7022988 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 e28a52b..18ee0db 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 f243013..6eea709 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 71d7de5..5fe6dba 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 b2f1518..02fe64e 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 73a0980..71ca26e 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 17fd645..baf57d4 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 51bef3d..58433f7 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 5cc1de0..37a579a 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 c39d416..cad272c 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 addc879..5b8613c 100644
--- a/libgcc/config/arc/ieee-754/divdf3.S
+++ b/libgcc/config/arc/ieee-754/divdf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 e38e17e..608fab8 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 7225f59..3295f99 100644
--- a/libgcc/config/arc/ieee-754/divsf3.S
+++ b/libgcc/config/arc/ieee-754/divsf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 8190916..34a7d92 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
@@ -29,7 +29,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
If this result can't be rounded to the exact result with confidence, we
round to the value between the two closest representable values, and
test if the correctly rounded value is above or below this value.
-
+
Because of the Newton-raphson iteration step, an error in the seed at X
is amplified by X. Therefore, we don't want a Tchebycheff polynom
or a polynom that is close to optimal according to the maximum norm
diff --git a/libgcc/config/arc/ieee-754/divtab-arc-sf.c b/libgcc/config/arc/ieee-754/divtab-arc-sf.c
index f0d6f09..907b33d 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
@@ -29,7 +29,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
If this result can't be rounded to the exact result with confidence, we
round to the value between the two closest representable values, and
test if the correctly rounded value is above or below this value.
-
+
Because of the Newton-raphson iteration step, an error in the seed at X
is amplified by X. Therefore, we don't want a Tchebycheff polynom
or a polynom that is close to optimal according to the maximum norm
diff --git a/libgcc/config/arc/ieee-754/eqdf2.S b/libgcc/config/arc/ieee-754/eqdf2.S
index 0248275..3d07773 100644
--- a/libgcc/config/arc/ieee-754/eqdf2.S
+++ b/libgcc/config/arc/ieee-754/eqdf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 094dcae..f96ae1c 100644
--- a/libgcc/config/arc/ieee-754/eqsf2.S
+++ b/libgcc/config/arc/ieee-754/eqsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 4021207..0a13092 100644
--- a/libgcc/config/arc/ieee-754/extendsfdf2.S
+++ b/libgcc/config/arc/ieee-754/extendsfdf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 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 73269db..a9b3bb3 100644
--- a/libgcc/config/arc/ieee-754/fixdfsi.S
+++ b/libgcc/config/arc/ieee-754/fixdfsi.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 9c8ca49..25b0b6b 100644
--- a/libgcc/config/arc/ieee-754/fixsfsi.S
+++ b/libgcc/config/arc/ieee-754/fixsfsi.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 9be61cd..83b4b6f 100644
--- a/libgcc/config/arc/ieee-754/fixunsdfsi.S
+++ b/libgcc/config/arc/ieee-754/fixunsdfsi.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 c5b230d..e6677c1 100644
--- a/libgcc/config/arc/ieee-754/floatsidf.S
+++ b/libgcc/config/arc/ieee-754/floatsidf.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 cd0c551f..ac0fbb3 100644
--- a/libgcc/config/arc/ieee-754/floatsisf.S
+++ b/libgcc/config/arc/ieee-754/floatsisf.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 06be564..aeb9e6f 100644
--- a/libgcc/config/arc/ieee-754/floatunsidf.S
+++ b/libgcc/config/arc/ieee-754/floatunsidf.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 21ff2fd..597c26c 100644
--- a/libgcc/config/arc/ieee-754/gedf2.S
+++ b/libgcc/config/arc/ieee-754/gedf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 6b1ae4c..2360497 100644
--- a/libgcc/config/arc/ieee-754/gesf2.S
+++ b/libgcc/config/arc/ieee-754/gesf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 f146b6e..5dc615a 100644
--- a/libgcc/config/arc/ieee-754/gtdf2.S
+++ b/libgcc/config/arc/ieee-754/gtdf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 576b18a..e278109 100644
--- a/libgcc/config/arc/ieee-754/gtsf2.S
+++ b/libgcc/config/arc/ieee-754/gtsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 b0201bd..3c385ce 100644
--- a/libgcc/config/arc/ieee-754/muldf3.S
+++ b/libgcc/config/arc/ieee-754/muldf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 d0070f5..efb8596 100644
--- a/libgcc/config/arc/ieee-754/mulsf3.S
+++ b/libgcc/config/arc/ieee-754/mulsf3.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 e9d82b9..22c0811 100644
--- a/libgcc/config/arc/ieee-754/orddf2.S
+++ b/libgcc/config/arc/ieee-754/orddf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 75a5671..4949821 100644
--- a/libgcc/config/arc/ieee-754/ordsf2.S
+++ b/libgcc/config/arc/ieee-754/ordsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 f137f67..f00c926 100644
--- a/libgcc/config/arc/ieee-754/truncdfsf2.S
+++ b/libgcc/config/arc/ieee-754/truncdfsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 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 3342186..e14beee 100644
--- a/libgcc/config/arc/ieee-754/uneqdf2.S
+++ b/libgcc/config/arc/ieee-754/uneqdf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 0347b1f..2364ee4 100644
--- a/libgcc/config/arc/ieee-754/uneqsf2.S
+++ b/libgcc/config/arc/ieee-754/uneqsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 0183dd4..24bae4d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
@@ -50,7 +50,7 @@ static func_ptr __DTOR_LIST__[1] __attribute__ ((section (".dtors")))
= { (func_ptr) (-1) };
/* Run all the global destructors on exit from the program. */
-
+
/* Some systems place the number of pointers in the first word of the
table. On SVR4 however, that word is -1. In all cases, the table is
null-terminated. On SVR4, we start from the beginning of the list and
diff --git a/libgcc/config/arc/lib1funcs.S b/libgcc/config/arc/lib1funcs.S
index e79eddb..e627ebf 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/lib2funcs.c b/libgcc/config/arc/lib2funcs.c
index 2a6efde..d32ad04 100644
--- a/libgcc/config/arc/lib2funcs.c
+++ b/libgcc/config/arc/lib2funcs.c
@@ -1,5 +1,5 @@
/* libgcc routines for ARC
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/arc/libgcc-excl.ver b/libgcc/config/arc/libgcc-excl.ver
index 85bdaa3..fbef11d 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 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 c3a1af6..64362f6 100644
--- a/libgcc/config/arc/linux-unwind-reg.def
+++ b/libgcc/config/arc/linux-unwind-reg.def
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 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 00f6fd4..5588e06 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 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 682be61..8c1c1ac 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
# on behalf of Synopsys Inc.
diff --git a/libgcc/config/arc/t-arc-uClibc b/libgcc/config/arc/t-arc-uClibc
index 9234151..2c99ab9 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 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 c9698ce..56130b5 100644
--- a/libgcc/config/arm/bpabi-lib.h
+++ b/libgcc/config/arm/bpabi-lib.h
@@ -1,6 +1,6 @@
/* Configuration file for ARM BPABI targets, library renames.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
- Contributed by CodeSourcery, LLC
+ Copyright (C) 2010-2025 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 6896d81..436f494 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 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 170052a..06f2bfc 100644
--- a/libgcc/config/arm/bpabi.S
+++ b/libgcc/config/arm/bpabi.S
@@ -1,6 +1,6 @@
/* Miscellaneous BPABI functions.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 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 a97960a..a46ffc8 100644
--- a/libgcc/config/arm/bpabi.c
+++ b/libgcc/config/arm/bpabi.c
@@ -1,6 +1,6 @@
/* Miscellaneous BPABI functions.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC.
This file is free software; you can redistribute it and/or modify it
@@ -23,14 +23,14 @@
<http://www.gnu.org/licenses/>. */
extern long long __divdi3 (long long, long long);
-extern unsigned long long __udivdi3 (unsigned long long,
+extern unsigned long long __udivdi3 (unsigned long long,
unsigned long long);
extern long long __gnu_ldivmod_helper (long long, long long, long long *);
long long
-__gnu_ldivmod_helper (long long a,
- long long b,
+__gnu_ldivmod_helper (long long a,
+ long long b,
long long *remainder)
{
long long quotient;
diff --git a/libgcc/config/arm/cmse.c b/libgcc/config/arm/cmse.c
index d20a97a..3c9a847 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 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/cmse_nonsecure_call.S b/libgcc/config/arm/cmse_nonsecure_call.S
index fef37b9..65c2c04 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 3ec1872..2349945 100644
--- a/libgcc/config/arm/crtfastmath.c
+++ b/libgcc/config/arm/crtfastmath.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2014-2025 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 88702a1..e26b236 100644
--- a/libgcc/config/arm/crti.S
+++ b/libgcc/config/arm/crti.S
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# Copyright (C) 2001-2025 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 e5336a2..b85e172 100644
--- a/libgcc/config/arm/crtn.S
+++ b/libgcc/config/arm/crtn.S
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# Copyright (C) 2001-2025 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 177ce1c..1897b13 100644
--- a/libgcc/config/arm/fp16.c
+++ b/libgcc/config/arm/fp16.c
@@ -1,6 +1,6 @@
/* Half-float conversion routines.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 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 7cf00b1..a2231c3 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -127,8 +127,6 @@ __sync_val_compare_and_swap_##N (TYPE *mem, TYPE expected, \
return (old); \
}
-typedef unsigned char bool;
-
#define SYNC_BOOL_CAS_N(N, TYPE) \
bool HIDDEN \
__sync_bool_compare_and_swap_##N (TYPE *ptr, TYPE oldval, \
diff --git a/libgcc/config/arm/ieee754-df.S b/libgcc/config/arm/ieee754-df.S
index 4847215..f244c63 100644
--- a/libgcc/config/arm/ieee754-df.S
+++ b/libgcc/config/arm/ieee754-df.S
@@ -1,6 +1,6 @@
/* ieee754-df.S double-precision floating point support for ARM
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Contributed by Nicolas Pitre (nico@fluxnic.net)
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/arm/ieee754-sf.S b/libgcc/config/arm/ieee754-sf.S
index 5929971..a6c9fcd 100644
--- a/libgcc/config/arm/ieee754-sf.S
+++ b/libgcc/config/arm/ieee754-sf.S
@@ -1,6 +1,6 @@
/* ieee754-sf.S single-precision floating point support for ARM
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Contributed by Nicolas Pitre (nico@fluxnic.net)
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/arm/lib1funcs.S b/libgcc/config/arm/lib1funcs.S
index 698f9c2..b2cdc31 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 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/libgcc-bpabi.ver b/libgcc/config/arm/libgcc-bpabi.ver
index b542668..e4fe021 100644
--- a/libgcc/config/arm/libgcc-bpabi.ver
+++ b/libgcc/config/arm/libgcc-bpabi.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 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 9bd624d..c62d11c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 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 b35dcec..3a7ec91 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Based on linux-atomic.c
64 bit additions david.gilbert@linaro.org
@@ -141,8 +141,6 @@ __sync_val_compare_and_swap_8 (long long *ptr, long long oldval,
}
}
-typedef unsigned char bool;
-
bool HIDDEN
__sync_bool_compare_and_swap_8 (long long *ptr, long long oldval,
long long newval)
diff --git a/libgcc/config/arm/linux-atomic.c b/libgcc/config/arm/linux-atomic.c
index 6d668319..8f24cb3 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by CodeSourcery.
This file is part of GCC.
@@ -201,7 +201,7 @@ int HIDDEN
__sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
{
int actual_oldval, fail;
-
+
while (1)
{
actual_oldval = *ptr;
@@ -210,7 +210,7 @@ __sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
return actual_oldval;
fail = __kernel_cmpxchg (actual_oldval, newval, ptr);
-
+
if (__builtin_expect (!fail, 1))
return oldval;
}
@@ -249,8 +249,6 @@ __sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
SUBWORD_VAL_CAS (short, 2)
SUBWORD_VAL_CAS (signed char, 1)
-typedef unsigned char bool;
-
bool HIDDEN
__sync_bool_compare_and_swap_4 (int *ptr, int oldval, int newval)
{
diff --git a/libgcc/config/arm/pr-support.c b/libgcc/config/arm/pr-support.c
index 9d58549..249c0b1 100644
--- a/libgcc/config/arm/pr-support.c
+++ b/libgcc/config/arm/pr-support.c
@@ -1,7 +1,7 @@
/* ARM EABI compliant unwinding routines
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
Contributed by Paul Brook
-
+
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
@@ -167,7 +167,7 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws)
_Unwind_VRS_Set (context, _UVRSC_CORE, R_SP, _UVRSD_UINT32, &reg);
continue;
}
-
+
if ((op & 0xf0) == 0x80)
{
op = (op << 8) | next_unwind_byte (uws);
@@ -200,7 +200,7 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws)
{
/* Pop r4-r[4+nnn], [lr]. */
_uw mask;
-
+
mask = (0xff0 >> (7 - (op & 7))) & 0xff0;
if (op & 8)
mask |= (1 << R_LR);
diff --git a/libgcc/config/arm/symbian-lib.h b/libgcc/config/arm/symbian-lib.h
index ede9bd8..91128a2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/arm/sync-cp15dmb.specs b/libgcc/config/arm/sync-cp15dmb.specs
index 0bb64b9..47bf68b 100644
--- a/libgcc/config/arm/sync-cp15dmb.specs
+++ b/libgcc/config/arm/sync-cp15dmb.specs
@@ -1,4 +1,4 @@
%rename link sync_sync_link
*link:
---defsym=__sync_synchronize=__sync_synchronize_cp15dmb %(sync_sync_link)
+%{!nostdlib|lgcc: --defsym=__sync_synchronize=__sync_synchronize_cp15dmb} %(sync_sync_link)
diff --git a/libgcc/config/arm/sync-dmb.specs b/libgcc/config/arm/sync-dmb.specs
index 13e59bd..cadad6d 100644
--- a/libgcc/config/arm/sync-dmb.specs
+++ b/libgcc/config/arm/sync-dmb.specs
@@ -1,4 +1,4 @@
%rename link sync_sync_link
*link:
---defsym=__sync_synchronize=__sync_synchronize_dmb %(sync_sync_link)
+%{!nostdlib|lgcc: --defsym=__sync_synchronize=__sync_synchronize_dmb} %(sync_sync_link)
diff --git a/libgcc/config/arm/sync-none.specs b/libgcc/config/arm/sync-none.specs
index 0aa4960..46071ca 100644
--- a/libgcc/config/arm/sync-none.specs
+++ b/libgcc/config/arm/sync-none.specs
@@ -1,4 +1,4 @@
%rename link sync_sync_link
*link:
---defsym=__sync_synchronize=__sync_synchronize_none %(sync_sync_link)
+%{!nostdlib|lgcc: --defsym=__sync_synchronize=__sync_synchronize_none} %(sync_sync_link)
diff --git a/libgcc/config/arm/unaligned-funcs.c b/libgcc/config/arm/unaligned-funcs.c
index f8f7ec3..b3c22fb 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 896fe69..208bdcd 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 on VxWorks Downloadable Kernel Modules.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 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/unwind-arm.c b/libgcc/config/arm/unwind-arm.c
index 345cdc0..3a31da5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is free software; you can redistribute it and/or modify it
@@ -510,7 +510,7 @@ __gnu_unwind_get_pr_addr (int idx)
default:
return 0;
- }
+ }
}
/* ABI defined personality routine entry points. */
diff --git a/libgcc/config/arm/unwind-arm.h b/libgcc/config/arm/unwind-arm.h
index c8f3140..f8e542d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 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/avr/avr-lib.h b/libgcc/config/avr/avr-lib.h
index bd785c3..2a1eff3 100644
--- a/libgcc/config/avr/avr-lib.h
+++ b/libgcc/config/avr/avr-lib.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 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 2be1ecb..4115589 100644
--- a/libgcc/config/avr/lib1funcs-fixed.S
+++ b/libgcc/config/avr/lib1funcs-fixed.S
@@ -1,5 +1,5 @@
/* -*- Mode: Asm -*- */
-;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2025 Free Software Foundation, Inc.
;; Contributed by Sean D'Epagnier (sean@depagnier.com)
;; Georg-Johann Lay (avr@gjlay.de)
@@ -31,14 +31,6 @@
;; Fixed point library routines for AVR
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-#if defined __AVR_TINY__
-#define __zero_reg__ r17
-#define __tmp_reg__ r16
-#else
-#define __zero_reg__ r1
-#define __tmp_reg__ r0
-#endif
-
.section .text.libgcc.fixed, "ax", @progbits
#ifndef __AVR_TINY__
@@ -251,6 +243,7 @@ DEFUN __fractsfusa
ENDF __fractsfusa
#endif /* L_fractsfusa */
+#endif /* ! AVR_TINY */
;; For multiplication the functions here are called directly from
;; avr-fixed.md instead of using the standard libcall mechanisms.
@@ -295,8 +288,14 @@ DEFUN __mulhq3
rol r25
brvs 1f
;; Round
+#ifndef __AVR_TINY__
sbrc r23, 7
adiw r24, 1
+#else
+ lsl r23
+ adc r24, __zero_reg__
+ adc r25, __zero_reg__
+#endif /* AVR_TINY? */
ret
1: ;; Overflow. TR 18037 requires (-1)^2 not to overflow
ldi r24, lo8 (0x7fff)
@@ -315,8 +314,14 @@ ENDF __mulhq3
DEFUN __muluhq3
XCALL __umulhisi3
;; Round
+#ifndef __AVR_TINY__
sbrc r23, 7
adiw r24, 1
+#else
+ lsl r23
+ adc r24, __zero_reg__
+ adc r25, __zero_reg__
+#endif /* AVR_TINY? */
ret
ENDF __muluhq3
#endif /* L_muluhq3 */
@@ -361,8 +366,14 @@ DEFUN __muluha3_round
mov r25, r24
mov r24, r23
;; Round
+#ifndef __AVR_TINY__
sbrc r22, 7
adiw r24, 1
+#else
+ lsl r22
+ adc r24, __zero_reg__
+ adc r25, __zero_reg__
+#endif /* AVR_TINY? */
ret
ENDF __muluha3_round
#endif /* L_muluha3_round */
@@ -372,6 +383,8 @@ ENDF __muluha3_round
Fixed Multiplication 16.16 x 16.16
*******************************************************/
+#ifndef __AVR_TINY__
+
;; Bits outside the result (below LSB), used in the signed version
#define GUARD __tmp_reg__
@@ -679,6 +692,8 @@ ENDF __mulusa3_round
#undef GUARD
+#endif /* ! AVR_TINY */
+
/***********************************************************
Fixed unsigned saturated Multiplication 8.8 x 8.8
***********************************************************/
@@ -762,8 +777,14 @@ DEFUN __ssmulha3
;; SS = 0 --> 0x7fff
ldi C3, 0x7f
ldi C2, 0xff
+#ifndef __AVR_TINY__
sbrc SS, 7
adiw C2, 1
+#else
+ lsl SS
+ adc C2, __zero_reg__
+ adc C3, __zero_reg__
+#endif /* AVR_TINY? */
ret
ENDF __ssmulha3
#endif /* L_ssmulha3 */
@@ -778,6 +799,8 @@ ENDF __ssmulha3
Fixed unsigned saturated Multiplication 16.16 x 16.16
***********************************************************/
+#ifndef __AVR_TINY__
+
#define C0 18
#define C1 C0+1
#define C2 C0+2
@@ -883,6 +906,8 @@ ENDF __ssmulsa3
#undef C7
#undef SS
+#endif /* ! AVR_TINY */
+
/*******************************************************
Fractional Division 8 / 8
*******************************************************/
@@ -962,8 +987,8 @@ ENDF __divqq_helper
#if defined (L_divhq3)
DEFUN __divhq3
- mov r0, r_divdH
- eor r0, r_divH
+ mov __tmp_reg__, r_divdH
+ eor __tmp_reg__, r_divH
sbrs r_divH, 7
rjmp 1f
NEG2 r_divL
@@ -1027,8 +1052,8 @@ ENDF __udivuha3_common
*******************************************************/
#if defined (L_divha3)
DEFUN __divha3
- mov r0, r_divdH
- eor r0, r_divH
+ mov __tmp_reg__, r_divdH
+ eor __tmp_reg__, r_divH
sbrs r_divH, 7
rjmp 1f
NEG2 r_divL
@@ -1040,7 +1065,7 @@ DEFUN __divha3
XCALL __udivuha3
lsr r_quoH ; adjust to 7 fractional bits
ror r_quoL
- sbrs r0, 7 ; negate result if needed
+ sbrs __tmp_reg__, 7 ; negate result if needed
ret
NEG2 r_quoL
ret
@@ -1069,6 +1094,8 @@ ENDF __udivuha3
Fixed Division 16.16 / 16.16
*******************************************************/
+#ifndef __AVR_TINY__
+
#define r_arg1L 24 /* arg1 gets passed already in place */
#define r_arg1H 25
#define r_arg1HL 26
@@ -1171,6 +1198,8 @@ ENDF __udivusa3
#undef r_divHH
#undef r_cnt
+#endif /* ! AVR_TINY */
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Saturation, 1 Byte
@@ -1206,7 +1235,7 @@ ENDF __ssabs_1
DEFUN __ssneg_2
NEG2 A0
brvc 0f
- sbiw A0, 1
+ wsubi A0, 1
0: ret
ENDF __ssneg_2
#endif /* L_ssneg_2 */
@@ -1228,6 +1257,8 @@ ENDF __ssabs_2
;; Saturation, 4 Bytes
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+#ifndef __AVR_TINY__
+
;; First Argument and Return Register
#define A0 22
#define A1 A0+1
@@ -1413,6 +1444,8 @@ ENDF __sssub_8
#undef B6
#undef B7
+#endif /* ! AVR_TINY */
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Rounding Helpers
@@ -1613,6 +1646,8 @@ ENDF __round_u2_const
;; Rounding, 4 Bytes
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+#ifndef __AVR_TINY__
+
#define A0 18
#define A1 A0 + 1
#define A2 A0 + 2
@@ -1915,6 +1950,7 @@ ENDF __round_x8
#undef RP
#undef FBITm1
+#endif /* ! AVR_TINY */
;; Supply implementations / symbols for the bit-banging functions
;; __builtin_avr_bitsfx and __builtin_avr_fxbits
@@ -1923,5 +1959,3 @@ DEFUN __ret
ret
ENDF __ret
#endif /* L_ret */
-
-#endif /* if not __AVR_TINY__ */
diff --git a/libgcc/config/avr/lib1funcs.S b/libgcc/config/avr/lib1funcs.S
index d48b047..dfe99b1 100644
--- a/libgcc/config/avr/lib1funcs.S
+++ b/libgcc/config/avr/lib1funcs.S
@@ -1,5 +1,5 @@
/* -*- Mode: Asm -*- */
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Denis Chertykov <chertykov@gmail.com>
This file is free software; you can redistribute it and/or modify it
@@ -101,6 +101,20 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define XIJMP ijmp
#endif
+;;; [R]JMP to label \labl when \reg is positive (\reg.7 = 0).
+;;; Otherwise, fallthrough.
+.macro .branch_plus reg, labl
+#ifdef __AVR_ERRATA_SKIP_JMP_CALL__
+ ;; Some cores have a problem skipping 2-word instructions
+ tst \reg
+ brmi .L..\@
+#else
+ sbrs \reg, 7
+#endif /* skip erratum */
+ XJMP \labl
+.L..\@:
+.endm ; .branch_plus
+
;; Prologue stuff
.macro do_prologue_saves n_pushed n_frame=0
@@ -381,45 +395,57 @@ ENDF __mulhi3
#if defined (L_umulhisi3)
DEFUN __umulhisi3
+#ifdef __AVR_TINY__
+ ;; Save callee saved regs.
+ push B0
+ push B1
+#endif /* AVR_TINY */
wmov B0, 24
;; Zero-extend B
clr B2
clr B3
;; Zero-extend A
wmov A2, B2
+#ifdef __AVR_TINY__
+ ;; Clear hi16 of the result so we can use __mulsi3_helper.
+ wmov CC2, B2
+ XJMP __mulsi3_helper
+#else
XJMP __mulsi3
+#endif /* AVR_TINY? */
ENDF __umulhisi3
#endif /* L_umulhisi3 */
#if defined (L_mulhisi3)
DEFUN __mulhisi3
+#ifdef __AVR_TINY__
+ ;; Save callee saved regs.
+ push B0
+ push B1
+#endif /* AVR_TINY */
wmov B0, 24
;; Sign-extend B
lsl r25
sbc B2, B2
mov B3, B2
-#ifdef __AVR_ERRATA_SKIP_JMP_CALL__
- ;; Sign-extend A
- clr A2
- sbrc A1, 7
- com A2
- mov A3, A2
- XJMP __mulsi3
-#else /* no __AVR_ERRATA_SKIP_JMP_CALL__ */
;; Zero-extend A and __mulsi3 will run at least twice as fast
;; compared to a sign-extended A.
clr A2
clr A3
+ ;; Clear hi16 of the result so we can use __mulsi3_helper.
+ wmov CC2, A2
sbrs A1, 7
- XJMP __mulsi3
+#ifdef __AVR_ERRATA_SKIP_JMP_CALL__
+ rjmp 1f
+#else
+ XJMP __mulsi3_helper
+#endif /* ERRATA_SKIP */
;; If A < 0 then perform the B * 0xffff.... before the
;; very multiplication by initializing the high part of the
;; result CC with -B.
- wmov CC2, A2
sub CC2, B0
sbc CC3, B1
- XJMP __mulsi3_helper
-#endif /* __AVR_ERRATA_SKIP_JMP_CALL__ */
+1: XJMP __mulsi3_helper
ENDF __mulhisi3
#endif /* L_mulhisi3 */
@@ -567,19 +593,12 @@ DEFUN __umulhisi3
mul A1, B1
movw C2, r0
mul A0, B1
-#ifdef __AVR_HAVE_JMP_CALL__
- ;; This function is used by many other routines, often multiple times.
- ;; Therefore, if the flash size is not too limited, avoid the RCALL
- ;; and inverst 6 Bytes to speed things up.
add C1, r0
adc C2, r1
clr __zero_reg__
adc C3, __zero_reg__
-#else
- rcall 1f
-#endif
mul A1, B0
-1: add C1, r0
+ add C1, r0
adc C2, r1
clr __zero_reg__
adc C3, __zero_reg__
@@ -2596,34 +2615,6 @@ ENDF __load_4
#define HHI8 21
-.macro .xload dest, n
-#if defined (__AVR_HAVE_ELPMX__)
- elpm \dest, Z+
-#elif defined (__AVR_HAVE_ELPM__)
- elpm
- mov \dest, r0
-.if \dest != D0+\n-1
- adiw r30, 1
- adc HHI8, __zero_reg__
- out __RAMPZ__, HHI8
-.endif
-#elif defined (__AVR_HAVE_LPMX__)
- lpm \dest, Z+
-#else
- lpm
- mov \dest, r0
-.if \dest != D0+\n-1
- adiw r30, 1
-.endif
-#endif
-#if defined (__AVR_HAVE_ELPM__) && defined (__AVR_HAVE_RAMPD__)
-.if \dest == D0+\n-1
- ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM
- out __RAMPZ__, __zero_reg__
-.endif
-#endif
-.endm ; .xload
-
#if defined (L_xload_1)
DEFUN __xload_1
#if defined (__AVR_HAVE_LPMX__) && !defined (__AVR_HAVE_ELPM__)
@@ -2633,14 +2624,8 @@ DEFUN __xload_1
lpm D0, Z
ret
#else
- sbrc HHI8, 7
- rjmp 1f
-#if defined (__AVR_HAVE_ELPM__)
- out __RAMPZ__, HHI8
-#endif /* __AVR_HAVE_ELPM__ */
- .xload D0, 1
- ret
-1: ld D0, Z
+ .branch_plus HHI8, __fload_1
+ ld D0, Z
ret
#endif /* LPMx && ! ELPM */
ENDF __xload_1
@@ -2648,15 +2633,8 @@ ENDF __xload_1
#if defined (L_xload_2)
DEFUN __xload_2
- sbrc HHI8, 7
- rjmp 1f
-#if defined (__AVR_HAVE_ELPM__)
- out __RAMPZ__, HHI8
-#endif /* __AVR_HAVE_ELPM__ */
- .xload D0, 2
- .xload D1, 2
- ret
-1: ld D0, Z+
+ .branch_plus HHI8, __fload_2
+ ld D0, Z+
ld D1, Z+
ret
ENDF __xload_2
@@ -2664,16 +2642,8 @@ ENDF __xload_2
#if defined (L_xload_3)
DEFUN __xload_3
- sbrc HHI8, 7
- rjmp 1f
-#if defined (__AVR_HAVE_ELPM__)
- out __RAMPZ__, HHI8
-#endif /* __AVR_HAVE_ELPM__ */
- .xload D0, 3
- .xload D1, 3
- .xload D2, 3
- ret
-1: ld D0, Z+
+ .branch_plus HHI8, __fload_3
+ ld D0, Z+
ld D1, Z+
ld D2, Z+
ret
@@ -2682,17 +2652,8 @@ ENDF __xload_3
#if defined (L_xload_4)
DEFUN __xload_4
- sbrc HHI8, 7
- rjmp 1f
-#if defined (__AVR_HAVE_ELPM__)
- out __RAMPZ__, HHI8
-#endif /* __AVR_HAVE_ELPM__ */
- .xload D0, 4
- .xload D1, 4
- .xload D2, 4
- .xload D3, 4
- ret
-1: ld D0, Z+
+ .branch_plus HHI8, __fload_4
+ ld D0, Z+
ld D1, Z+
ld D2, Z+
ld D3, Z+
@@ -2705,7 +2666,121 @@ ENDF __xload_4
#if !defined (__AVR_TINY__)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; memcopy from Address Space __pgmx to RAM
+;; Loading n bytes from Flash; n = 1,2,3,4
+;; R22... = Flash[R21:Z]
+;; Clobbers: __tmp_reg__, R21, R30, R31
+
+#if (defined (L_fload_1) \
+ || defined (L_fload_2) \
+ || defined (L_fload_3) \
+ || defined (L_fload_4))
+
+;; Destination
+#define D0 22
+#define D1 D0+1
+#define D2 D0+2
+#define D3 D0+3
+
+;; Register containing bits 16+ of the address
+
+#define HHI8 21
+
+.macro .fload dest, n
+#if defined (__AVR_HAVE_ELPM__)
+.if \dest == D0
+ out __RAMPZ__, HHI8
+.endif
+#endif /* __AVR_HAVE_ELPM__ */
+#if defined (__AVR_HAVE_ELPMX__)
+ elpm \dest, Z+
+#elif defined (__AVR_HAVE_ELPM__)
+ elpm
+ mov \dest, r0
+.if \dest != D0+\n-1
+ adiw r30, 1
+ adc HHI8, __zero_reg__
+ out __RAMPZ__, HHI8
+.endif
+#elif defined (__AVR_HAVE_LPMX__)
+ lpm \dest, Z+
+#else
+ lpm
+ mov \dest, r0
+.if \dest != D0+\n-1
+ adiw r30, 1
+.endif
+#endif
+#if defined (__AVR_HAVE_ELPM__) && defined (__AVR_HAVE_RAMPD__)
+.if \dest == D0+\n-1
+ ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM
+ out __RAMPZ__, __zero_reg__
+.endif
+#endif
+.endm ; .fload
+
+#if defined (L_fload_1)
+DEFUN __fload_1
+#if defined (__AVR_HAVE_LPMX__) && !defined (__AVR_HAVE_ELPM__)
+ lpm D0, Z
+ ret
+#else
+ .fload D0, 1
+ ret
+#endif /* LPMx && ! ELPM */
+ENDF __fload_1
+#endif /* L_fload_1 */
+
+#if defined (L_fload_2)
+DEFUN __fload_2
+ .fload D0, 2
+ .fload D1, 2
+ ret
+ENDF __fload_2
+#endif /* L_fload_2 */
+
+#if defined (L_fload_3)
+DEFUN __fload_3
+ .fload D0, 3
+ .fload D1, 3
+ .fload D2, 3
+ ret
+ENDF __fload_3
+#endif /* L_fload_3 */
+
+#if defined (L_fload_4)
+DEFUN __fload_4
+ .fload D0, 4
+ .fload D1, 4
+ .fload D2, 4
+ .fload D3, 4
+ ret
+ENDF __fload_4
+#endif /* L_fload_4 */
+
+#endif /* L_fload_{1|2|3|4} */
+#endif /* if !defined (__AVR_TINY__) */
+
+
+#if !defined (__AVR_TINY__)
+#if defined (L_strlen_memx)
+DEFUN __strlen_memx
+#ifdef __AVR_ERRATA_SKIP_JMP_CALL__
+ tst r24
+ brmi 1f
+#else
+ sbrs r24, 7
+#endif
+ XJMP strlen_PF ; AVR-LibC
+1: wmov 24, 22
+ XJMP strlen ; AVR-LibC
+ENDF __strlen_memx
+#endif /* L_strlen_memx */
+#endif /* if !defined (__AVR_TINY__) */
+
+
+#if !defined (__AVR_TINY__)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; memcopy from Address Space __memx to RAM
;; R23:Z = Source Address
;; X = Destination Address
;; Clobbers: __tmp_reg__, R23, R24, R25, X, Z
@@ -2716,7 +2791,7 @@ ENDF __xload_4
#define LOOP 24
DEFUN __movmemx_qi
- ;; #Bytes to copy fity in 8 Bits (1..255)
+ ;; #Bytes to copy fits in 8 Bits (1..255)
;; Zero-extend Loop Counter
clr LOOP+1
;; FALLTHRU
@@ -2724,9 +2799,41 @@ ENDF __movmemx_qi
DEFUN __movmemx_hi
-;; Read from where?
- sbrc HHI8, 7
- rjmp 1f
+ .branch_plus HHI8, __movmemf_hi
+
+ ;; Read 1 Byte from RAM...
+1: ld r0, Z+
+ ;; and store that Byte to RAM Destination
+ st X+, r0
+ sbiw LOOP, 1
+ brne 1b
+ ret
+ENDF __movmemx_hi
+
+#undef HHI8
+#undef LOOP
+
+#endif /* L_movmemx */
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; memcopy from Address Space __flashx to RAM
+;; R23:Z = Source Address
+;; X = Destination Address
+;; Clobbers: __tmp_reg__, R23, R24, R25, X, Z
+
+#if defined (L_movmemf)
+
+#define HHI8 23
+#define LOOP 24
+
+DEFUN __movmemf_qi
+ ;; #Bytes to copy fits in 8 Bits (1..255)
+ ;; Zero-extend Loop Counter
+ clr LOOP+1
+ ;; FALLTHRU
+ENDF __movmemf_qi
+
+DEFUN __movmemf_hi
;; Read from Flash
@@ -2759,22 +2866,12 @@ DEFUN __movmemx_hi
out __RAMPZ__, __zero_reg__
#endif /* ELPM && RAMPD */
ret
-
-;; Read from RAM
-
-1: ;; Read 1 Byte from RAM...
- ld r0, Z+
- ;; and store that Byte to RAM Destination
- st X+, r0
- sbiw LOOP, 1
- brne 1b
- ret
-ENDF __movmemx_hi
+ENDF __movmemf_hi
#undef HHI8
#undef LOOP
-#endif /* L_movmemx */
+#endif /* L_movmemf */
#endif /* !defined (__AVR_TINY__) */
diff --git a/libgcc/config/avr/lib2funcs.c b/libgcc/config/avr/lib2funcs.c
index 2af5958..f6027c0 100644
--- a/libgcc/config/avr/lib2funcs.c
+++ b/libgcc/config/avr/lib2funcs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/avr/libf7/ChangeLog b/libgcc/config/avr/libf7/ChangeLog
index ce80d38..b19b5b4 100644
--- a/libgcc/config/avr/libf7/ChangeLog
+++ b/libgcc/config/avr/libf7/ChangeLog
@@ -1,3 +1,31 @@
+2025-05-27 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/120442
+ * libf7-common.mk (LIBF_C_PARTS, m_ddd): Add fdim.
+ * libf7.h (f7_fdim): New proto.
+ * libf7.c (f7_fdim): New function.
+ * f7renames.sh (f7_fdim): Add rename.
+ * f7-wraps.h: Rebuild
+ * f7-renames.h: Rebuild
+
+2025-05-27 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/120441
+ * libf7.c (f7_exp): Limit aa->expo to 10 (not to 9).
+
+2025-03-22 Georg-Johann Lay <avr@gjlay.de>
+
+ * t-libf7 (libgcc-objects): Only add objects when building
+ for non-AVRrc.
+
+2024-11-16 Georg-Johann Lay <avr@gjlay.de>
+
+ * libf7.h (bool, true, false): Don't define in C23 or higher.
+
+2024-10-25 Jakub Jelinek <jakub@redhat.com>
+
+ * f7-renames.h: Remove trailing whitespace.
+
2024-06-14 Georg-Johann Lay <avr@gjlay.de>
PR target/115419
diff --git a/libgcc/config/avr/libf7/asm-defs.h b/libgcc/config/avr/libf7/asm-defs.h
index 8e83df8..4c006dd 100644
--- a/libgcc/config/avr/libf7/asm-defs.h
+++ b/libgcc/config/avr/libf7/asm-defs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of LIBF7, which is part of GCC.
diff --git a/libgcc/config/avr/libf7/f7-renames.h b/libgcc/config/avr/libf7/f7-renames.h
index 22370a1..bce2dd3 100644
--- a/libgcc/config/avr/libf7/f7-renames.h
+++ b/libgcc/config/avr/libf7/f7-renames.h
@@ -13,9 +13,9 @@
#define F7_(name) __f7_##name
#define F7P __f7_
-
+
/* Renames for libf7.c, libf7.h. */
-
+
#define f7_fabs __f7_fabs
#define f7_neg __f7_neg
#define f7_add __f7_add
@@ -97,6 +97,7 @@
#define f7_acos __f7_acos
#define f7_atan __f7_atan
#define f7_atan2 __f7_atan2
+#define f7_fdim __f7_fdim
#define f7_mul_noround __f7_mul_noround
#define f7_sqrt16_round __f7_sqrt16_round
#define f7_sqrt16_floor __f7_sqrt16_floor
@@ -173,9 +174,9 @@
#define f7_ne_impl __f7_ne_impl
#define f7_eq_impl __f7_eq_impl
#define f7_unord_impl __f7_unord_impl
-
+
/* Renames for libf7.c, libf7.h. */
-
+
#define f7_const_1 __f7_const_1
#define f7_const_1_P __f7_const_1_P
#define f7_const_2 __f7_const_2
@@ -198,9 +199,9 @@
#define f7_const_1_ln10_P __f7_const_1_ln10_P
#define f7_const_sqrt2 __f7_const_sqrt2
#define f7_const_sqrt2_P __f7_const_sqrt2_P
-
+
/* Renames for libf7-asm.sx, f7-wraps.h. */
-
+
#define f7_classify_asm __f7_classify_asm
#define f7_store_expo_asm __f7_store_expo_asm
#define f7_clr_asm __f7_clr_asm
diff --git a/libgcc/config/avr/libf7/f7-wraps.h b/libgcc/config/avr/libf7/f7-wraps.h
index dceb9d0..409492e 100644
--- a/libgcc/config/avr/libf7/f7-wraps.h
+++ b/libgcc/config/avr/libf7/f7-wraps.h
@@ -1,4 +1,4 @@
-;; Copyright (C) 2019-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;;
;; This file is part of LIBF7, which is part of GCC.
;;
@@ -239,7 +239,7 @@ _ENDF __extendsfdf2
;; Functions that usually live in libm: Depending on [long] double layout,
;; define <name> and <name>l as weak alias(es) of __<name> for <name> in:
-;; pow fmin fmax fmod hypot atan2
+;; pow fmin fmax fmod hypot atan2 fdim
;; double __pow (double, double)
#ifdef F7MOD_D_pow_
@@ -313,6 +313,18 @@ _DEFUN __atan2
_ENDF __atan2
#endif /* F7MOD_D_atan2_ */
+;; double __fdim (double, double)
+#ifdef F7MOD_D_fdim_
+_DEFUN __fdim
+ DALIAS fdim
+ LALIAS fdiml
+ .global F7_NAME(fdim)
+ ldi ZH, hi8(gs(F7_NAME(fdim)))
+ ldi ZL, lo8(gs(F7_NAME(fdim)))
+ F7jmp call_ddd
+_ENDF __fdim
+#endif /* F7MOD_D_fdim_ */
+
;; Functions that usually live in libm: Depending on [long] double layout,
;; define <name> and <name>l as weak alias(es) of __<name> for <name> in:
;; ldexp frexp
diff --git a/libgcc/config/avr/libf7/f7renames.sh b/libgcc/config/avr/libf7/f7renames.sh
index 7ef251e..4ced423 100755
--- a/libgcc/config/avr/libf7/f7renames.sh
+++ b/libgcc/config/avr/libf7/f7renames.sh
@@ -35,9 +35,9 @@ EOF
c)
if [ x${PRE} != xf7_ ]; then
- echo " "
+ echo ""
echo "/* Renames for libf7.c, libf7.h. */"
- echo " "
+ echo ""
for x in $*; do
echo "#define f7_$x ${PRE}$x"
done
@@ -46,9 +46,9 @@ EOF
cst)
if [ x${PRE} != xf7_ ]; then
- echo " "
+ echo ""
echo "/* Renames for libf7.c, libf7.h. */"
- echo " "
+ echo ""
for x in $*; do
echo "#define f7_const_${x} ${PRE}const_${x}"
echo "#define f7_const_${x}_P ${PRE}const_${x}_P"
@@ -58,9 +58,9 @@ EOF
asm)
if [ x${PRE} != xf7_ ]; then
- echo " "
+ echo ""
echo "/* Renames for libf7-asm.sx, f7-wraps.h. */"
- echo " "
+ echo ""
for x in $*; do
echo "#define f7_${x}_asm ${PRE}${x}_asm"
done
diff --git a/libgcc/config/avr/libf7/f7wraps.sh b/libgcc/config/avr/libf7/f7wraps.sh
index b432857..d4080b3 100755
--- a/libgcc/config/avr/libf7/f7wraps.sh
+++ b/libgcc/config/avr/libf7/f7wraps.sh
@@ -13,7 +13,7 @@ fi
case ${what} in
header)
cat << EOF
-;; Copyright (C) 2019-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;;
;; This file is part of LIBF7, which is part of GCC.
;;
diff --git a/libgcc/config/avr/libf7/libf7-array.def b/libgcc/config/avr/libf7/libf7-array.def
index d08eb70..674e2a5 100644
--- a/libgcc/config/avr/libf7/libf7-array.def
+++ b/libgcc/config/avr/libf7/libf7-array.def
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of LIBF7, which is part of GCC.
diff --git a/libgcc/config/avr/libf7/libf7-asm.sx b/libgcc/config/avr/libf7/libf7-asm.sx
index bef62f3..a06792d 100644
--- a/libgcc/config/avr/libf7/libf7-asm.sx
+++ b/libgcc/config/avr/libf7/libf7-asm.sx
@@ -1,4 +1,4 @@
-;; Copyright (C) 2019-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;;
;; This file is part of LIBF7, which is part of GCC.
;;
diff --git a/libgcc/config/avr/libf7/libf7-common.mk b/libgcc/config/avr/libf7/libf7-common.mk
index 5d41107..644be2c 100644
--- a/libgcc/config/avr/libf7/libf7-common.mk
+++ b/libgcc/config/avr/libf7/libf7-common.mk
@@ -8,7 +8,7 @@ F7_C_PARTS += set_float get_float get_double set_double set_pdouble
F7_C_PARTS += fabs neg fmin fmax minmax truncx trunc floor ceil round lround
F7_C_PARTS += horner logx log log10 log2 exp pow10 pow powi
F7_C_PARTS += sin cos tan cotan sincos sinh cosh tanh sinhcosh
-F7_C_PARTS += asinacos asin acos atan atan2
+F7_C_PARTS += asinacos asin acos atan atan2 fdim
F7_C_PARTS += abscmp_msb_ge cmp cmp_abs cmp_unordered
F7_C_PARTS += const_1 const_1_2 const_1_3
@@ -34,7 +34,7 @@ g_xdd_cmp += le lt ge gt ne eq unord
g_dx += floatunsidf floatsidf extendsfdf2
g_xd += fixdfsi fixdfdi fixunsdfdi fixunsdfsi truncdfsf2
-m_ddd += pow fmin fmax fmod hypot atan2
+m_ddd += pow fmin fmax fmod hypot atan2 fdim
m_ddx += ldexp frexp
m_dd += sqrt cbrt exp exp10 pow10 log log10 log2 sin cos tan cotan asin acos atan
m_dd += ceil floor trunc round sinh cosh tanh
@@ -59,7 +59,7 @@ F7F += lrint ldexp frexp exp logx log log10 log2
F7F += minmax fmax fmin floor ceil round lround trunc truncx
F7F += horner pow10 exp10 pow powi
F7F += sin cos tan cotan sincos sinh cosh tanh sinhcosh
-F7F += asinacos asin acos atan atan2
+F7F += asinacos asin acos atan atan2 fdim
F7F += mul_noround sqrt16_round sqrt16_floor
F7F += clr_mant_lsbs abscmp_msb_ge lshrdi3 ashldi3
F7F += assert
diff --git a/libgcc/config/avr/libf7/libf7-const.def b/libgcc/config/avr/libf7/libf7-const.def
index 0581641..240071d 100644
--- a/libgcc/config/avr/libf7/libf7-const.def
+++ b/libgcc/config/avr/libf7/libf7-const.def
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of LIBF7, which is part of GCC.
diff --git a/libgcc/config/avr/libf7/libf7-constdef.h b/libgcc/config/avr/libf7/libf7-constdef.h
index 3ab82d0..a016f90 100644
--- a/libgcc/config/avr/libf7/libf7-constdef.h
+++ b/libgcc/config/avr/libf7/libf7-constdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of LIBF7, which is part of GCC.
diff --git a/libgcc/config/avr/libf7/libf7.c b/libgcc/config/avr/libf7/libf7.c
index 6fae4fc..78c218a 100644
--- a/libgcc/config/avr/libf7/libf7.c
+++ b/libgcc/config/avr/libf7/libf7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of LIBF7, which is part of GCC.
@@ -928,6 +928,21 @@ void f7_sub (f7_t *cc, const f7_t *aa, const f7_t *bb)
#endif // F7MOD_sub_
+#ifdef F7MOD_fdim_
+F7_WEAK
+void f7_fdim (f7_t *cc, const f7_t *aa, const f7_t *bb)
+{
+ int8_t cmp = f7_cmp_unordered (aa, bb, true /*with_sign*/);
+ if (cmp == INT8_MIN)
+ return f7_set_nan (cc);
+ if (cmp < 0)
+ return f7_clr (cc);
+
+ f7_sub (cc, aa, bb);
+}
+#endif // F7MOD_fdim_
+
+
#ifdef F7MOD_addsub_
static void return_with_sign (f7_t *cc, const f7_t *aa, int8_t c_sign)
{
@@ -1649,10 +1664,10 @@ void f7_exp (f7_t *cc, const f7_t *aa)
return f7_set_nan (cc);
/* The maximal exponent of 2 for a double is 1023, hence we may limit
- to |A| < 1023 * ln2 ~ 709. We limit to 1024 ~ 1.99 * 2^9 */
+ to |A| < 1023 * ln2 ~ 709. We limit to 1024 = 2^10 */
if (f7_class_inf (a_class)
- || (f7_class_nonzero (a_class) && aa->expo >= 9))
+ || (f7_class_nonzero (a_class) && aa->expo >= 10))
{
if (f7_class_sign (a_class))
return f7_clr (cc);
diff --git a/libgcc/config/avr/libf7/libf7.h b/libgcc/config/avr/libf7/libf7.h
index 38ee270..786e141 100644
--- a/libgcc/config/avr/libf7/libf7.h
+++ b/libgcc/config/avr/libf7/libf7.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of LIBF7, which is part of GCC.
@@ -95,12 +95,16 @@ typedef __INT64_TYPE__ int64_t;
typedef __INT32_TYPE__ int32_t;
typedef __INT16_TYPE__ int16_t;
typedef __INT8_TYPE__ int8_t;
-typedef _Bool bool;
-#define false 0
-#define true 1
#define INT8_MIN (-1 - __INT8_MAX__)
#define INT16_MAX __INT16_MAX__
#define NULL ((void*) 0)
+#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L
+/* bool, true and false are keywords. */
+#else
+#define bool _Bool
+#define true 1
+#define false 0
+#endif /* C23 ? */
#endif /* IN_LIBGCC2 */
#include "asm-defs.h"
@@ -608,6 +612,7 @@ extern void f7_cos (f7_t*, const f7_t*);
extern void f7_tan (f7_t*, const f7_t*);
extern void f7_atan (f7_t*, const f7_t*);
extern void f7_atan2 (f7_t*, const f7_t*, const f7_t*);
+extern void f7_fdim (f7_t*, const f7_t*, const f7_t*);
extern void f7_asin (f7_t*, const f7_t*);
extern void f7_acos (f7_t*, const f7_t*);
extern void f7_tanh (f7_t*, const f7_t*);
diff --git a/libgcc/config/avr/libf7/t-libf7 b/libgcc/config/avr/libf7/t-libf7
index f17e67e8..9ec70d8 100644
--- a/libgcc/config/avr/libf7/t-libf7
+++ b/libgcc/config/avr/libf7/t-libf7
@@ -127,7 +127,9 @@ iter-labels := $(f7_parts)
-include $(patsubst %,$(libf7)/libf7-c-object.mk,$(iter-items))
+ifeq (,$(findstring avrtiny,$(MULTIDIR)))
libgcc-objects += $(patsubst %,f7_c_%$(objext),$(F7_C_PARTS))
+endif
# Build the libf7 ASM objects and add them to libgcc.a.
@@ -138,7 +140,9 @@ iter-labels := $(f7_parts)
-include $(patsubst %,$(libf7)/libf7-asm-object.mk,$(iter-items))
+ifeq (,$(findstring avrtiny,$(MULTIDIR)))
libgcc-objects += $(patsubst %,f7_asm_%$(objext),$(F7_ASM_PARTS))
+endif
.PHONY: clean-f7
diff --git a/libgcc/config/avr/t-avr b/libgcc/config/avr/t-avr
index 971a092..d181784 100644
--- a/libgcc/config/avr/t-avr
+++ b/libgcc/config/avr/t-avr
@@ -4,6 +4,7 @@ LIB1ASMFUNCS = \
_mulhi3 \
_mulqihi3 _umulqihi3 \
_mulpsi3 \
+ _mulhisi3 _umulhisi3 \
_mulsi3 \
_udivmodqi4 \
_divmodqi4 \
@@ -33,27 +34,35 @@ LIB1ASMFUNCS = \
_popcountsi2 \
_popcountqi2 \
_bswapsi2 \
- _fmul _fmuls _fmulsu
+ _fmul _fmuls _fmulsu \
+ _mulqq3 \
+ _mulhq3 _muluhq3 \
+ _mulha3 _muluha3 _muluha3_round \
+ _usmuluha3 _ssmulha3 \
+ _divqq3 _udivuqq3 _divqq_helper \
+ _divhq3 _udivuhq3 \
+ _divha3 _udivuha3 \
+ _ssneg_2 \
+ _ssabs_1 _ssabs_2 \
+ _mask1 _ret \
+ _roundqq3 _rounduqq3 \
+ _round_s2 _round_u2 _round_2_const _addmask_2 \
# The below functions either use registers that are not present
-# in tiny core, or use a different register conventions (don't save
+# in tiny core, or use a different register convention (don't save
# callee saved regs, for example)
-# _mulhisi3 and variations - clobber R18, R19
# All *di funcs - use regs < R16 or expect args in regs < R20
# _prologue and _epilogue save registers < R16
-# _load ad _xload variations - expect lpm and elpm support
-# _movmemx - expects elpm/lpm
-
-ifneq ($(MULTIFLAGS),-mmcu=avrtiny)
-LIB1ASMFUNCS += \
- _mulsqipsi3 \
- _mulhisi3 \
- _umulhisi3 \
+# _load, __fload and _xload variations - expect lpm and elpm support
+# _movmemx and _movmemf - expect elpm/lpm
+
+FUNCS_notiny = \
+ _mulsqipsi3 \
_usmulhisi3 \
_muluhisi3 \
_mulshisi3 \
- _muldi3 _muldi3_6 \
- _mulsidi3 _umulsidi3 \
+ _muldi3 _muldi3_6 \
+ _mulsidi3 _umulsidi3 \
_divdi3 _udivdi3 \
_udivmod64 \
_negdi2 \
@@ -61,7 +70,9 @@ LIB1ASMFUNCS += \
_epilogue \
_load_3 _load_4 \
_xload_1 _xload_2 _xload_3 _xload_4 \
- _movmemx \
+ _fload_1 _fload_2 _fload_3 _fload_4 \
+ _movmemx _movmemf \
+ _strlen_memx \
_clzdi2 \
_paritydi2 \
_popcountdi2 \
@@ -70,11 +81,9 @@ LIB1ASMFUNCS += \
_adddi3 _adddi3_s8 _subdi3 \
_cmpdi2 _cmpdi2_s8 \
_powif
-endif
# Fixed point routines in avr/lib1funcs-fixed.S
-ifneq ($(MULTIFLAGS),-mmcu=avrtiny)
-LIB1ASMFUNCS += \
+FUNCS_notiny += \
_fractqqsf _fractuqqsf \
_fracthqsf _fractuhqsf _fracthasf _fractuhasf \
_fractsasf _fractusasf _fractsqsf _fractusqsf \
@@ -82,29 +91,22 @@ LIB1ASMFUNCS += \
_fractsfqq _fractsfuqq \
_fractsfhq _fractsfuhq _fractsfha _fractsfuha \
_fractsfsq _fractsfusq _fractsfsa _fractsfusa \
- _mulqq3 \
- _mulhq3 _muluhq3 \
- _mulha3 _muluha3 _muluha3_round \
_mulsa3 _mulusa3 \
- _usmuluha3 _ssmulha3 \
_usmulusa3 _ssmulsa3 \
- _divqq3 _udivuqq3 _divqq_helper \
- _divhq3 _udivuhq3 \
- _divha3 _udivuha3 \
_divsa3 _udivusa3 \
_clr_8 \
- _ssneg_2 _ssneg_4 _ssneg_8 \
- _ssabs_1 _ssabs_2 _ssabs_4 _ssabs_8 \
+ _ssneg_4 _ssneg_8 \
+ _ssabs_4 _ssabs_8 \
_ssadd_8 _sssub_8 \
_usadd_8 _ussub_8 \
- _mask1 _ret \
- _roundqq3 _rounduqq3 \
- _round_s2 _round_u2 _round_2_const _addmask_2 \
_round_s4 _round_u4 _round_4_const _addmask_4 \
_round_x8 \
_rounddq3 _roundudq3 \
_roundda3 _rounduda3 \
_roundta3 _rounduta3
+
+ifeq (,$(findstring avrtiny,$(MULTIDIR)))
+LIB1ASMFUNCS += $(FUNCS_notiny)
endif
LIB2FUNCS_EXCLUDE = \
@@ -113,6 +115,9 @@ LIB2FUNCS_EXCLUDE = \
_clrsbdi2 \
_powisf2
+ifneq (,$(findstring avrtiny,$(MULTIDIR)))
+LIB2FUNCS_EXCLUDE += $(FUNCS_notiny)
+endif
ifeq ($(long_double_type_size),32)
# We do not have the DFtype.
diff --git a/libgcc/config/bfin/crti.S b/libgcc/config/bfin/crti.S
index e292c4e..b7ce88b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 534e78b..5a82510 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 75e64b1..3a7ac07 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 4e9d653..1407a90 100644
--- a/libgcc/config/bfin/lib1funcs.S
+++ b/libgcc/config/bfin/lib1funcs.S
@@ -1,5 +1,5 @@
/* libgcc functions for Blackfin.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 6845da1..1c603f4c 100644
--- a/libgcc/config/bfin/libgcc-glibc.ver
+++ b/libgcc/config/bfin/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2024 Free Software Foundation, Inc.
+# Copyright (C) 2000-2025 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 78df06c..86cccc0 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/c6x/c6x-abi.h b/libgcc/config/c6x/c6x-abi.h
index b379c56..03971cb 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 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 3984f24..7a3b49e 100644
--- a/libgcc/config/c6x/crti.S
+++ b/libgcc/config/c6x/crti.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 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 aff1650..b924b94 100644
--- a/libgcc/config/c6x/crtn.S
+++ b/libgcc/config/c6x/crtn.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 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 0fc4d0d..b424dd2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 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 53db9ac..0345470 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 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 aa0bb36..2acf8d6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 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 6ac3dd3..0292cf6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 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 126fa9d..818ef3af 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 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 3c10e24..d571c51 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 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 84f4816..796442c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 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 a684014..3bbc9b5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 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 fcbc571..0e66d53 100644
--- a/libgcc/config/c6x/lib1funcs.S
+++ b/libgcc/config/c6x/lib1funcs.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 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 f635d3a..7b25df1 100644
--- a/libgcc/config/c6x/libgcc-eabi.ver
+++ b/libgcc/config/c6x/libgcc-eabi.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/c6x/ltd.c b/libgcc/config/c6x/ltd.c
index 7c01201..3e5372a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 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 853f4e2..05d4289 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 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 a5eead6..6c9a55f 100644
--- a/libgcc/config/c6x/pr-support.c
+++ b/libgcc/config/c6x/pr-support.c
@@ -1,6 +1,6 @@
/* C6X ABI compliant unwinding routines
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
-
+ Copyright (C) 2011-2025 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
@@ -142,7 +142,7 @@ unwind_restore_pair (_Unwind_Context * context, int reg, _uw *ptr)
}
static const int
-unwind_frame_regs[13] =
+unwind_frame_regs[13] =
{
R_A15, R_B15, R_B14, R_B13, R_B12, R_B11, R_B10, R_B3,
R_A14, R_A13, R_A12, R_A11, R_A10
@@ -456,7 +456,7 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws)
_Unwind_VRS_Set (context, _UVRSC_CORE, R_B3, _UVRSD_UINT32, &reg);
continue;
}
-
+
/* Reserved. */
return _URC_FAILURE;
}
@@ -513,7 +513,7 @@ _Unwind_Ptr
_Unwind_GetRegionStart (_Unwind_Context *context)
{
_Unwind_Control_Block *ucbp;
-
+
ucbp = (_Unwind_Control_Block *) _Unwind_GetGR (context, UNWIND_POINTER_REG);
return (_Unwind_Ptr) ucbp->pr_cache.fnstart;
}
@@ -523,7 +523,7 @@ _Unwind_GetLanguageSpecificData (_Unwind_Context *context)
{
_Unwind_Control_Block *ucbp;
_uw *ptr;
-
+
ucbp = (_Unwind_Control_Block *) _Unwind_GetGR (context, UNWIND_POINTER_REG);
ptr = (_uw *) ucbp->pr_cache.ehtp;
/* Skip the personality routine address. */
diff --git a/libgcc/config/c6x/sfp-machine.h b/libgcc/config/c6x/sfp-machine.h
index f9f0404..a089d95 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 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 45ffd15..93f1803 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 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 41da773..acb8171 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 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/cris/arit.c b/libgcc/config/cris/arit.c
index da4332b..ab02b8d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 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 bb1be67..3171d67 100644
--- a/libgcc/config/cris/mulsi3.S
+++ b/libgcc/config/cris/mulsi3.S
@@ -1,4 +1,4 @@
-;; Copyright (C) 2001-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2025 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 4f89859..86f55db 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 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 5e6a18b..2df6fd0 100644
--- a/libgcc/config/cris/umulsidi3.S
+++ b/libgcc/config/cris/umulsidi3.S
@@ -1,4 +1,4 @@
-;; Copyright (C) 2001-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2025 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/libgcc/config/csky/crti.S b/libgcc/config/csky/crti.S
index 1824596..8358b79 100644
--- a/libgcc/config/csky/crti.S
+++ b/libgcc/config/csky/crti.S
@@ -1,5 +1,5 @@
# Define _init and _fini entry points for C-SKY.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 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
diff --git a/libgcc/config/csky/crtn.S b/libgcc/config/csky/crtn.S
index 902a076..262ec6b 100644
--- a/libgcc/config/csky/crtn.S
+++ b/libgcc/config/csky/crtn.S
@@ -1,5 +1,5 @@
# Terminate C-SKY .init and .fini sections.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 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
diff --git a/libgcc/config/csky/lib1funcs.S b/libgcc/config/csky/lib1funcs.S
index ef54c9b..fa91af5 100644
--- a/libgcc/config/csky/lib1funcs.S
+++ b/libgcc/config/csky/lib1funcs.S
@@ -1,5 +1,5 @@
/* libgcc routines for C-SKY.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
Contributed by C-SKY Microsystems and Mentor Graphics.
This file is part of GCC.
diff --git a/libgcc/config/csky/linux-atomic.c b/libgcc/config/csky/linux-atomic.c
index 15c3815..019980e 100644
--- a/libgcc/config/csky/linux-atomic.c
+++ b/libgcc/config/csky/linux-atomic.c
@@ -1,5 +1,5 @@
/* Linux-specific atomic operations for C-SKY.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
Contributed by C-SKY Microsystems and Mentor Graphics.
This file is part of GCC.
@@ -215,8 +215,6 @@ __sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
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)
{
diff --git a/libgcc/config/csky/linux-unwind.h b/libgcc/config/csky/linux-unwind.h
index d5d6cbd..a443a77 100644
--- a/libgcc/config/csky/linux-unwind.h
+++ b/libgcc/config/csky/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for C-SKY Linux.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
Contributed by C-SKY Microsystems and Mentor Graphics.
This file is part of GCC.
diff --git a/libgcc/config/csky/t-csky b/libgcc/config/csky/t-csky
index 91fd894..6aba404 100644
--- a/libgcc/config/csky/t-csky
+++ b/libgcc/config/csky/t-csky
@@ -1,5 +1,5 @@
# Makefile fragment for all C-SKY targets.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# Contributed by C-SKY Microsystems and Mentor Graphics.
#
# This file is part of GCC.
diff --git a/libgcc/config/csky/t-linux-csky b/libgcc/config/csky/t-linux-csky
index 81f083c..7fb711e 100644
--- a/libgcc/config/csky/t-linux-csky
+++ b/libgcc/config/csky/t-linux-csky
@@ -1,5 +1,5 @@
# Makefile fragment for C-SKY targets running Linux.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# Contributed by C-SKY Microsystems and Mentor Graphics.
#
# This file is part of GCC.
diff --git a/libgcc/config/darwin-64.c b/libgcc/config/darwin-64.c
index 259fb0e..642d8c6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 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 7bf4674..adaeb3c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by Iain Sandoe <iains@gcc.gnu.org>
This file is part of GCC.
@@ -47,25 +47,25 @@ extern void _ITM_deregisterTMCloneTable (void *) WEAK;
static inline void *getTMCloneTable (const void *f, size_t *tmct_siz)
{
char *tmct_fixed, *tmct = NULL;
- unsigned int i, img_count;
+ unsigned int i, img_count;
struct mach_header *mh;
Dl_info info;
-
+
if (! dladdr (f, &info) || info.dli_fbase == NULL)
abort ();
-
+
mh = (struct mach_header *) info.dli_fbase;
tmct_fixed = GET_DATA_TMCT (mh, tmct_siz);
*tmct_siz /= (sizeof (size_t) * 2);
/* No tm_clone_table or no clones. */
if (tmct_fixed == NULL || *tmct_siz == 0)
- return NULL;
+ return NULL;
img_count = _dyld_image_count();
for (i = 0; i < img_count && tmct == NULL; i++)
{
if (mh == _dyld_get_image_header(i))
- tmct = tmct_fixed + (unsigned long)_dyld_get_image_vmaddr_slide(i);
+ tmct = tmct_fixed + (unsigned long)_dyld_get_image_vmaddr_slide(i);
}
return tmct;
diff --git a/libgcc/config/darwin-crt3.c b/libgcc/config/darwin-crt3.c
index c0935a6..a39573b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -84,13 +84,13 @@ typedef void (*cxa_atexit_callback)(void *);
/* This structure holds a routine to call. There may be extra fields
at the end of the structure that this code doesn't know about. */
-struct one_atexit_routine
+struct one_atexit_routine
{
union {
atexit_callback ac;
cxa_atexit_callback cac;
} callback;
- /* has_arg is 0/2/4 if 'ac' is live, 1/3/5 if 'cac' is live.
+ /* has_arg is 0/2/4 if 'ac' is live, 1/3/5 if 'cac' is live.
Higher numbers indicate a later version of the structure that this
code doesn't understand and will ignore. */
int has_arg;
@@ -141,7 +141,7 @@ struct keymgr_atexit_list
fails to call routines registered while an atexit routine is
running. Return 1 if it works properly, and -1 if an error occurred. */
-struct atexit_data
+struct atexit_data
{
int result;
cxa_atexit_p cxa_atexit;
@@ -194,12 +194,12 @@ find_atexit_10_3 (void)
unsigned int (*dyld_image_count_fn)(void);
const char *(*dyld_get_image_name_fn)(unsigned int image_index);
const void *(*dyld_get_image_header_fn)(unsigned int image_index);
- const void *(*NSLookupSymbolInImage_fn)(const void *image,
+ const void *(*NSLookupSymbolInImage_fn)(const void *image,
const char *symbolName,
unsigned int options);
void *(*NSAddressOfSymbol_fn)(const void *symbol);
unsigned i, count;
-
+
/* Find some dyld functions. */
_dyld_func_lookup("__dyld_image_count", &dyld_image_count_fn);
_dyld_func_lookup("__dyld_get_image_name", &dyld_get_image_name_fn);
@@ -212,14 +212,14 @@ find_atexit_10_3 (void)
|| ! dyld_get_image_header_fn || ! NSLookupSymbolInImage_fn
|| ! NSAddressOfSymbol_fn)
return NULL;
-
+
count = dyld_image_count_fn ();
for (i = 0; i < count; i++)
{
const char * path = dyld_get_image_name_fn (i);
const void * image;
const void * symbol;
-
+
if (strcmp (path, "/usr/lib/libSystem.B.dylib") != 0)
continue;
image = dyld_get_image_header_fn (i);
@@ -235,14 +235,14 @@ find_atexit_10_3 (void)
}
#endif
-/* Create (if necessary), find, lock, fill in, and return our globals.
- Return NULL on error, in which case the globals will not be locked.
+/* Create (if necessary), find, lock, fill in, and return our globals.
+ Return NULL on error, in which case the globals will not be locked.
The caller should call keymgr_set_and_unlock. */
static struct keymgr_atexit_list *
get_globals (void)
{
struct keymgr_atexit_list * r;
-
+
#ifdef __ppc__
/* 10.3.9 doesn't have _keymgr_get_and_lock_processwide_ptr_2 so the
PPC side can't use it. On 10.4 this just means the error gets
@@ -256,7 +256,7 @@ get_globals (void)
return NULL;
r = rr;
#endif
-
+
if (r == NULL)
{
r = calloc (sizeof (struct keymgr_atexit_list), 1);
@@ -307,7 +307,7 @@ get_globals (void)
}
return r;
-
+
error:
_keymgr_set_and_unlock_processwide_ptr (KEYMGR_ATEXIT_LIST, r);
return NULL;
@@ -325,7 +325,7 @@ add_routine (struct keymgr_atexit_list * g,
struct atexit_routine_list * s
= malloc (sizeof (struct atexit_routine_list));
int result;
-
+
if (!s)
{
_keymgr_set_and_unlock_processwide_ptr (KEYMGR_ATEXIT_LIST, g);
@@ -382,7 +382,7 @@ cxa_atexit_wrapper (void* routine_param)
struct keymgr_atexit_list *g;
struct atexit_routine_list * base = NULL;
char prev_running = 0;
-
+
g = _keymgr_get_and_lock_processwide_ptr (KEYMGR_ATEXIT_LIST);
if (g)
{
@@ -425,7 +425,7 @@ our_atexit (void)
g = _keymgr_get_and_lock_processwide_ptr (KEYMGR_ATEXIT_LIST);
if (! g || g->version != 0 || g->atexit_status != atexit_status_missing)
return;
-
+
prev_running = g->running_routines;
g->running_routines = 1;
g = run_routines (g, NULL);
@@ -450,7 +450,7 @@ atexit_common (const struct one_atexit_routine *r, const void *dso)
if (! g)
return -1;
-
+
if (g->running_routines || g->atexit_status == atexit_status_missing)
return add_routine (g, r);
@@ -497,7 +497,7 @@ atexit_common (const struct one_atexit_routine *r, const void *dso)
/* These are the actual replacement routines; they just funnel into
atexit_common. */
-int __cxa_atexit (cxa_atexit_callback func, void* arg,
+int __cxa_atexit (cxa_atexit_callback func, void* arg,
const void* dso) __attribute__((visibility("hidden")));
int
diff --git a/libgcc/config/epiphany/crti.S b/libgcc/config/epiphany/crti.S
index e66f231..2db8651 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 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 a62bd43..83ff835 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 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 fb4df09..39485dc 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 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 d04ac56..3fad047 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 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 f79a2d8..1b80a9c 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 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 8f14660..ae95458 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 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 056b481..8100db2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 ea3f3ec..49bdb80 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 2481105..6145f5d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 3987888..5e6a4aa 100644
--- a/libgcc/config/epiphany/epiphany-asm.h
+++ b/libgcc/config/epiphany/epiphany-asm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 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 ba2d244..e5ab512 100644
--- a/libgcc/config/epiphany/ieee-754/eqsf2.S
+++ b/libgcc/config/epiphany/ieee-754/eqsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 a7b95e4..ba6a50f 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 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 ce4d4bf..e233263 100644
--- a/libgcc/config/epiphany/ieee-754/gtesf2.S
+++ b/libgcc/config/epiphany/ieee-754/gtesf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 ea5863c..196e6ed 100644
--- a/libgcc/config/epiphany/ieee-754/ordsf2.S
+++ b/libgcc/config/epiphany/ieee-754/ordsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 3509287..e915327 100644
--- a/libgcc/config/epiphany/ieee-754/uneqsf2.S
+++ b/libgcc/config/epiphany/ieee-754/uneqsf2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 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 3fba10b..7c4bae23 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 24acc62..95886ee 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 28ffc32..5669afe 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 5d4ee2d..2522166 100644
--- a/libgcc/config/epiphany/mulsi3.c
+++ b/libgcc/config/epiphany/mulsi3.c
@@ -1,5 +1,5 @@
/* Generic 32 bit multiply.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 95e9bb2..6acdacc 100644
--- a/libgcc/config/epiphany/t-epiphany
+++ b/libgcc/config/epiphany/t-epiphany
@@ -1,4 +1,4 @@
-# Copyright (C) 1997-2024 Free Software Foundation, Inc.
+# Copyright (C) 1997-2025 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 06391fa..637499f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 5a59dbb..8d2b645 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 59dcc68..7c7f8ec 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 0fed2df..0e6ffb3 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 1d45852..b820db6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 9e19629..6bc1dc6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 5de2861..5b99dfb 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 965ae12..71ce17f 100644
--- a/libgcc/config/fr30/crti.S
+++ b/libgcc/config/fr30/crti.S
@@ -1,6 +1,6 @@
# crti.s for ELF
-# Copyright (C) 1992-2024 Free Software Foundation, Inc.
+# Copyright (C) 1992-2025 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 5cf9706..1f60f2a 100644
--- a/libgcc/config/fr30/crtn.S
+++ b/libgcc/config/fr30/crtn.S
@@ -1,6 +1,6 @@
# crtn.S for ELF
-# Copyright (C) 1992-2024 Free Software Foundation, Inc.
+# Copyright (C) 1992-2025 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 d7d6602..97033b8 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 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 4615549..b0cfb07 100644
--- a/libgcc/config/frv/cmovd.c
+++ b/libgcc/config/frv/cmovd.c
@@ -1,19 +1,19 @@
/* Move double-word library function.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Red Hat, 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.
diff --git a/libgcc/config/frv/cmovh.c b/libgcc/config/frv/cmovh.c
index 85396d9..447aaa8 100644
--- a/libgcc/config/frv/cmovh.c
+++ b/libgcc/config/frv/cmovh.c
@@ -1,19 +1,19 @@
/* Move half-word library function.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Red Hat, 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.
diff --git a/libgcc/config/frv/cmovw.c b/libgcc/config/frv/cmovw.c
index 2b7ea9d..7114d2c 100644
--- a/libgcc/config/frv/cmovw.c
+++ b/libgcc/config/frv/cmovw.c
@@ -1,19 +1,19 @@
/* Move word library function.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Red Hat, 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.
diff --git a/libgcc/config/frv/elf-lib.h b/libgcc/config/frv/elf-lib.h
index eee155b..5e2b19d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 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 02f3179..54dabb2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 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 3c60e21..7a7b2d0 100644
--- a/libgcc/config/frv/frvbegin.c
+++ b/libgcc/config/frv/frvbegin.c
@@ -1,19 +1,19 @@
/* Frv initialization file linked before all user modules
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Red Hat, 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.
diff --git a/libgcc/config/frv/frvend.c b/libgcc/config/frv/frvend.c
index 08d524f..e251687 100644
--- a/libgcc/config/frv/frvend.c
+++ b/libgcc/config/frv/frvend.c
@@ -1,19 +1,19 @@
/* Frv initialization file linked after all user modules
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Red Hat, 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.
diff --git a/libgcc/config/frv/lib1funcs.S b/libgcc/config/frv/lib1funcs.S
index 3aed31e..5ddbbc3 100644
--- a/libgcc/config/frv/lib1funcs.S
+++ b/libgcc/config/frv/lib1funcs.S
@@ -1,5 +1,5 @@
/* Library functions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 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 8b3da5a..e874536 100644
--- a/libgcc/config/frv/libgcc-glibc.ver
+++ b/libgcc/config/frv/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 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 6e52a1c..148ffa9 100644
--- a/libgcc/config/ft32/crti.S
+++ b/libgcc/config/ft32/crti.S
@@ -1,6 +1,6 @@
# crti.S for FT32
#
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 9f689a5..7ec7c0a 100644
--- a/libgcc/config/ft32/crtn.S
+++ b/libgcc/config/ft32/crtn.S
@@ -1,6 +1,6 @@
# crtn.S for FT32
#
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 c248edc..c656323 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 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/amdgcn_veclib.h b/libgcc/config/gcn/amdgcn_veclib.h
index d268c6c..2a977c3 100644
--- a/libgcc/config/gcn/amdgcn_veclib.h
+++ b/libgcc/config/gcn/amdgcn_veclib.h
@@ -1,9 +1,9 @@
/* Macro library used to help during conversion of scalar math functions to
vectorized SIMD equivalents on AMD GCN.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
Contributed by Siemens.
-
+
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
diff --git a/libgcc/config/gcn/atomic.c b/libgcc/config/gcn/atomic.c
index 3807a6a..6cf3159 100644
--- a/libgcc/config/gcn/atomic.c
+++ b/libgcc/config/gcn/atomic.c
@@ -1,5 +1,5 @@
/* AMD GCN atomic operations
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
Contributed by Mentor Graphics.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/gcn/crt0.c b/libgcc/config/gcn/crt0.c
index 9946052..cc23e21 100644
--- a/libgcc/config/gcn/crt0.c
+++ b/libgcc/config/gcn/crt0.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 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
@@ -24,6 +24,28 @@ typedef long long size_t;
/* Provide an entry point symbol to silence a linker warning. */
void _start() {}
+
+#define PR119369_fixed 0
+
+
+/* Host/device compatibility: '__cxa_finalize'. Dummy; if necessary,
+ overridden via libgomp 'target-cxa-dso-dtor.c'. */
+
+#if PR119369_fixed
+extern void __GCC_offload___cxa_finalize (void *) __attribute__((weak));
+#else
+void __GCC_offload___cxa_finalize (void *) __attribute__((weak));
+
+void __attribute__((weak))
+__GCC_offload___cxa_finalize (void *dso_handle __attribute__((unused)))
+{
+}
+#endif
+
+/* There are no DSOs; this is the main program. */
+static void * const __dso_handle = 0;
+
+
#ifdef USE_NEWLIB_INITFINI
extern void __libc_init_array (void) __attribute__((weak));
@@ -38,6 +60,11 @@ void _init_array()
__attribute__((amdgpu_hsa_kernel ()))
void _fini_array()
{
+#if PR119369_fixed
+ if (__GCC_offload___cxa_finalize)
+#endif
+ __GCC_offload___cxa_finalize (__dso_handle);
+
__libc_fini_array ();
}
@@ -70,6 +97,11 @@ void _init_array()
__attribute__((amdgpu_hsa_kernel ()))
void _fini_array()
{
+#if PR119369_fixed
+ if (__GCC_offload___cxa_finalize)
+#endif
+ __GCC_offload___cxa_finalize (__dso_handle);
+
size_t count;
size_t i;
diff --git a/libgcc/config/gcn/gthr-gcn.h b/libgcc/config/gcn/gthr-gcn.h
index 8582371..0ab0079 100644
--- a/libgcc/config/gcn/gthr-gcn.h
+++ b/libgcc/config/gcn/gthr-gcn.h
@@ -1,6 +1,6 @@
/* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/gcn/lib2-bswapti2.c b/libgcc/config/gcn/lib2-bswapti2.c
index f5d9a1e..0011128 100644
--- a/libgcc/config/gcn/lib2-bswapti2.c
+++ b/libgcc/config/gcn/lib2-bswapti2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 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/lib2-divmod-di.c b/libgcc/config/gcn/lib2-divmod-di.c
index 2fa0f13..a3ed422 100644
--- a/libgcc/config/gcn/lib2-divmod-di.c
+++ b/libgcc/config/gcn/lib2-divmod-di.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
Contributed by Mentor Graphics, Inc.
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/gcn/lib2-divmod.c b/libgcc/config/gcn/lib2-divmod.c
index d07e7a8..1f731d7 100644
--- a/libgcc/config/gcn/lib2-divmod.c
+++ b/libgcc/config/gcn/lib2-divmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 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/gcn/lib2-gcn.h b/libgcc/config/gcn/lib2-gcn.h
index 8b421ac..902e636 100644
--- a/libgcc/config/gcn/lib2-gcn.h
+++ b/libgcc/config/gcn/lib2-gcn.h
@@ -1,6 +1,6 @@
/* Integer arithmetic support for gcn.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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/gcn/lib2-vec_divmod-di.c b/libgcc/config/gcn/lib2-vec_divmod-di.c
index 355da65..d61fa2a 100644
--- a/libgcc/config/gcn/lib2-vec_divmod-di.c
+++ b/libgcc/config/gcn/lib2-vec_divmod-di.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 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/gcn/lib2-vec_divmod-hi.c b/libgcc/config/gcn/lib2-vec_divmod-hi.c
index 9bfce56..4f06489 100644
--- a/libgcc/config/gcn/lib2-vec_divmod-hi.c
+++ b/libgcc/config/gcn/lib2-vec_divmod-hi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 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/gcn/lib2-vec_divmod-qi.c b/libgcc/config/gcn/lib2-vec_divmod-qi.c
index 9e1938b..e22605c 100644
--- a/libgcc/config/gcn/lib2-vec_divmod-qi.c
+++ b/libgcc/config/gcn/lib2-vec_divmod-qi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 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/gcn/lib2-vec_divmod.c b/libgcc/config/gcn/lib2-vec_divmod.c
index 025d311..becae1e 100644
--- a/libgcc/config/gcn/lib2-vec_divmod.c
+++ b/libgcc/config/gcn/lib2-vec_divmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 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/gcn/t-amdgcn b/libgcc/config/gcn/t-amdgcn
index b00adc7..d1d9a4f 100644
--- a/libgcc/config/gcn/t-amdgcn
+++ b/libgcc/config/gcn/t-amdgcn
@@ -8,9 +8,6 @@ LIB2ADD += $(srcdir)/config/gcn/atomic.c \
$(srcdir)/config/gcn/lib2-bswapti2.c \
$(srcdir)/config/gcn/unwind-gcn.c
-# Until we have libstdc++-v3/libsupc++ proper.
-LIB2ADD += $(srcdir)/c++-minimal/guard.c
-
LIB2ADDEH=
LIB2FUNCS_EXCLUDE=__main
diff --git a/libgcc/config/gcn/unwind-gcn.c b/libgcc/config/gcn/unwind-gcn.c
index d08ba26..97e22c0 100644
--- a/libgcc/config/gcn/unwind-gcn.c
+++ b/libgcc/config/gcn/unwind-gcn.c
@@ -1,6 +1,6 @@
/* Stub unwinding implementation.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
Contributed by Mentor Graphics
This file is free software; you can redistribute it and/or modify it
@@ -25,6 +25,33 @@
#include "unwind.h"
_Unwind_Reason_Code
+_Unwind_RaiseException(struct _Unwind_Exception *exc __attribute__ ((__unused__)))
+{
+ __builtin_abort ();
+ return 0;
+}
+
+void
+_Unwind_DeleteException (struct _Unwind_Exception *exc)
+{
+ if (exc->exception_cleanup)
+ (*exc->exception_cleanup) (_URC_FOREIGN_EXCEPTION_CAUGHT, exc);
+}
+
+void
+_Unwind_Resume (struct _Unwind_Exception *exc __attribute__ ((__unused__)))
+{
+ __builtin_abort ();
+}
+
+_Unwind_Reason_Code
+_Unwind_Resume_or_Rethrow (struct _Unwind_Exception *exc __attribute__ ((__unused__)))
+{
+ __builtin_abort ();
+ return 0;
+}
+
+_Unwind_Reason_Code
_Unwind_Backtrace(_Unwind_Trace_Fn trace, void * trace_argument)
{
return 0;
diff --git a/libgcc/config/gthr-lynx.h b/libgcc/config/gthr-lynx.h
index 2bd4b82..651ac66 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 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 1ab9cda..71c8ab4 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 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
index 5fa8cef..7c064a3 100644
--- a/libgcc/config/gthr-vxworks-cond.c
+++ b/libgcc/config/gthr-vxworks-cond.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/gthr-vxworks-thread.c b/libgcc/config/gthr-vxworks-thread.c
index 3f2cadb..31f291a 100644
--- a/libgcc/config/gthr-vxworks-thread.c
+++ b/libgcc/config/gthr-vxworks-thread.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -33,6 +33,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include <taskLib.h>
#include <stdlib.h>
+#include <string.h>
#define __TIMESPEC_TO_NSEC(timespec) \
((long long)timespec.tv_sec * 1000000000 + (long long)timespec.tv_nsec)
diff --git a/libgcc/config/gthr-vxworks-tls.c b/libgcc/config/gthr-vxworks-tls.c
index 7e946f0..8ff9f2f 100644
--- a/libgcc/config/gthr-vxworks-tls.c
+++ b/libgcc/config/gthr-vxworks-tls.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Zack Weinberg <zack@codesourcery.com>
This file is part of GCC.
diff --git a/libgcc/config/gthr-vxworks.c b/libgcc/config/gthr-vxworks.c
index e12b578..3c4bdd4 100644
--- a/libgcc/config/gthr-vxworks.c
+++ b/libgcc/config/gthr-vxworks.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Zack Weinberg <zack@codesourcery.com>
This file is part of GCC.
@@ -58,7 +58,7 @@ __gthread_once (__gthread_once_t * __guard, void (*__func) (void))
/* 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)
diff --git a/libgcc/config/gthr-vxworks.h b/libgcc/config/gthr-vxworks.h
index c60fd81..2f5a2ca 100644
--- a/libgcc/config/gthr-vxworks.h
+++ b/libgcc/config/gthr-vxworks.h
@@ -1,6 +1,6 @@
/* Threads compatibility routines for libgcc2 and libobjc for VxWorks. */
/* Compile this one with gcc. */
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Mike Stump <mrs@wrs.com>.
This file is part of GCC.
diff --git a/libgcc/config/h8300/clzhi2.c b/libgcc/config/h8300/clzhi2.c
index 3267721..8e6f16b 100644
--- a/libgcc/config/h8300/clzhi2.c
+++ b/libgcc/config/h8300/clzhi2.c
@@ -1,5 +1,5 @@
/* The implementation of __clzhi2.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 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 16fd6ef..39e4dfc 100644
--- a/libgcc/config/h8300/crti.S
+++ b/libgcc/config/h8300/crti.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 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 aef38c3..f622cc3 100644
--- a/libgcc/config/h8300/crtn.S
+++ b/libgcc/config/h8300/crtn.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 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 f86a4d0..c241e7d 100644
--- a/libgcc/config/h8300/ctzhi2.c
+++ b/libgcc/config/h8300/ctzhi2.c
@@ -1,5 +1,5 @@
/* The implementation of __ctzhi2.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/h8300/ffshi2.c b/libgcc/config/h8300/ffshi2.c
new file mode 100644
index 0000000..f08e73f
--- /dev/null
+++ b/libgcc/config/h8300/ffshi2.c
@@ -0,0 +1,42 @@
+/* The implementation of __ffshi2.
+ Copyright (C) 2003-2025 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/>. */
+
+int __ffshi2 (int x);
+
+int
+__ffshi2 (int x)
+{
+ int i;
+
+ if (!x)
+ return 0;
+
+ i = 0;
+ for (;;)
+ {
+ if (((1 << i++) & x) != 0)
+ return i;
+ }
+ return 0;
+}
diff --git a/libgcc/config/h8300/fixunssfsi.c b/libgcc/config/h8300/fixunssfsi.c
index a265d31..f5bd0c2 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2025 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 a43b1a5..749b2be 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 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 16f06e6..3f4a60b 100644
--- a/libgcc/config/h8300/parityhi2.c
+++ b/libgcc/config/h8300/parityhi2.c
@@ -1,5 +1,5 @@
/* The implementation of __parityhi2.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 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 007640c..5877aba 100644
--- a/libgcc/config/h8300/popcounthi2.c
+++ b/libgcc/config/h8300/popcounthi2.c
@@ -1,5 +1,5 @@
/* The implementation of __popcounthi2.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 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 578f0ce..b7bceb3 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 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/t-h8300 b/libgcc/config/h8300/t-h8300
index b644852..414053f 100644
--- a/libgcc/config/h8300/t-h8300
+++ b/libgcc/config/h8300/t-h8300
@@ -5,6 +5,7 @@ LIB1ASMFUNCS = _cmpsi2 _ucmpsi2 _divhi3 _divsi3 _mulhi3 _mulsi3 \
LIB2ADD = \
$(srcdir)/config/h8300/clzhi2.c \
$(srcdir)/config/h8300/ctzhi2.c \
+ $(srcdir)/config/h8300/ffshi2.c \
$(srcdir)/config/h8300/parityhi2.c \
$(srcdir)/config/h8300/popcounthi2.c \
$(srcdir)/config/h8300/fixunssfsi.c
diff --git a/libgcc/config/hardfp.c b/libgcc/config/hardfp.c
index 4355632..a8df73c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 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 d9eb8a9..79d4c76 100644
--- a/libgcc/config/i386/32/tf-signs.c
+++ b/libgcc/config/i386/32/tf-signs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
union _FP_UNION_Q
{
__float128 flt;
- struct
+ struct
{
unsigned long frac0 : 32;
unsigned long frac1 : 32;
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
index 0bd6dff..2484dc8 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Sriraman Tallam (tmsriram@google.com)
This file is part of GCC.
diff --git a/libgcc/config/i386/crtfastmath.c b/libgcc/config/i386/crtfastmath.c
index 3a0d0bb..bb061ba 100644
--- a/libgcc/config/i386/crtfastmath.c
+++ b/libgcc/config/i386/crtfastmath.c
@@ -1,16 +1,16 @@
/*
- * Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2005-2025 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.
@@ -39,7 +39,7 @@ __attribute__ ((force_align_arg_pointer))
set_fast_math_sse (unsigned int edx)
{
unsigned int mxcsr;
-
+
if (edx & bit_FXSAVE)
{
/* Check if DAZ is available. */
diff --git a/libgcc/config/i386/crti.S b/libgcc/config/i386/crti.S
index 6fc8ed2..7041a57 100644
--- a/libgcc/config/i386/crti.S
+++ b/libgcc/config/i386/crti.S
@@ -1,6 +1,6 @@
/* crti.S for x86.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 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 b7e9570..9a947f9 100644
--- a/libgcc/config/i386/crtn.S
+++ b/libgcc/config/i386/crtn.S
@@ -1,6 +1,6 @@
/* crtn.S for x86.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 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 27a80e8..62d992c 100644
--- a/libgcc/config/i386/crtprec.c
+++ b/libgcc/config/i386/crtprec.c
@@ -1,16 +1,16 @@
/*
- * Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2007-2025 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.
diff --git a/libgcc/config/i386/cygming-crtbegin.c b/libgcc/config/i386/cygming-crtbegin.c
index 5014b92..f742a3b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 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 106806e..eba66dc 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
Contributed by Danny Smith <dannysmith@users.sourceforge.net>
@@ -28,7 +28,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define IN_LIBGCC2
/* auto-host.h is needed by cygming.h for HAVE_GAS_WEAK and here
- for HAVE_LD_RO_RW_SECTION_MIXING. */
+ for HAVE_LD_RO_RW_SECTION_MIXING. */
#include "auto-host.h"
#include "tconfig.h"
#include "tsystem.h"
@@ -53,7 +53,7 @@ static EH_FRAME_SECTION_CONST int __FRAME_END__[]
= { 0 };
#endif
-extern void __gcc_register_frame (void);
+extern void __gcc_register_frame (void);
extern void __gcc_deregister_frame (void);
#pragma GCC diagnostic push
diff --git a/libgcc/config/i386/cygwin.S b/libgcc/config/i386/cygwin.S
index 8da2577..eca5318 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1996-2025 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 26e1b85..c953dc5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 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 cdfef74..24fcf7c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 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 46fcadb..ebd6258 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 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 563de02..c144af5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 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 389ab0d..07f8af5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by John Marino <gnugcc@marino.st>
This file is part of GCC.
diff --git a/libgcc/config/i386/gnu-unwind.h b/libgcc/config/i386/gnu-unwind.h
index 02b060a..29ef30e 100644
--- a/libgcc/config/i386/gnu-unwind.h
+++ b/libgcc/config/i386/gnu-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for GNU Hurd: x86.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
Contributed by Samuel Thibault <samuel.thibault@gnu.org>
This file is part of GCC.
diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h
index d6bb6c3..979e1eb 100644
--- a/libgcc/config/i386/gthr-mcf.h
+++ b/libgcc/config/i386/gthr-mcf.h
@@ -1,5 +1,5 @@
/* Threads compatibility routines for libgcc and libobjc. */
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/i386/gthr-win32-cond.c b/libgcc/config/i386/gthr-win32-cond.c
index 650c448..f53fd41 100644
--- a/libgcc/config/i386/gthr-win32-cond.c
+++ b/libgcc/config/i386/gthr-win32-cond.c
@@ -1,6 +1,6 @@
/* Implementation of threads compatibility routines for libgcc2. */
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/i386/gthr-win32-thread.c b/libgcc/config/i386/gthr-win32-thread.c
index 0030fcc..9ec7c41 100644
--- a/libgcc/config/i386/gthr-win32-thread.c
+++ b/libgcc/config/i386/gthr-win32-thread.c
@@ -1,6 +1,6 @@
/* Implementation of threads compatibility routines for libgcc2. */
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/i386/gthr-win32.c b/libgcc/config/i386/gthr-win32.c
index 40d598d..1b2d280 100644
--- a/libgcc/config/i386/gthr-win32.c
+++ b/libgcc/config/i386/gthr-win32.c
@@ -1,6 +1,6 @@
/* Implementation of threads compatibility routines for libgcc2. */
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/i386/gthr-win32.h b/libgcc/config/i386/gthr-win32.h
index 29deff9..34988d4 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Mumit Khan <khan@xraylith.wisc.edu>.
This file is part of GCC.
@@ -71,6 +71,21 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#error Timed lock primitives are not supported on Windows targets
#endif
+#ifdef __has_attribute
+# if __has_attribute(__always_inline__)
+# define __GTHREAD_ALWAYS_INLINE __attribute__((__always_inline__))
+# endif
+#endif
+#ifndef __GTHREAD_ALWAYS_INLINE
+# define __GTHREAD_ALWAYS_INLINE
+#endif
+
+#ifdef __cplusplus
+# define __GTHREAD_INLINE inline __GTHREAD_ALWAYS_INLINE
+#else
+# define __GTHREAD_INLINE static inline
+#endif
+
/* Make sure CONST_CAST2 (origin in system.h) is declared. */
#ifndef CONST_CAST2
#ifdef __cplusplus
@@ -398,11 +413,7 @@ extern int _CRT_MT;
extern int __mingwthr_key_dtor (unsigned long, void (*) (void *));
#endif /* _WIN32 && !__CYGWIN__ */
-/* __GTHR_W32_InterlockedCompareExchange is left over from win95,
- which did not support InterlockedCompareExchange. */
-#define __GTHR_W32_InterlockedCompareExchange InterlockedCompareExchange
-
-static inline int
+__GTHREAD_INLINE int
__gthread_active_p (void)
{
#ifdef MINGW32_SUPPORTS_MT_EH
@@ -438,20 +449,20 @@ extern int __gthr_win32_cond_timedwait (__gthread_cond_t *, __gthread_mutex_t *,
const __gthread_time_t *);
#endif
-static inline int
+__GTHREAD_INLINE int
__gthread_create (__gthread_t *__thr, void *(*__func) (void*),
void *__args)
{
return __gthr_win32_create (__thr, __func, __args);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_join (__gthread_t __thr, void **__value_ptr)
{
return __gthr_win32_join (__thr, __value_ptr);
}
-static inline __gthread_t
+__GTHREAD_INLINE __gthread_t
__gthread_self (void)
{
return __gthr_win32_self ();
@@ -463,25 +474,25 @@ __gthread_self (void)
Only stubs are exposed to avoid polluting the C++ namespace with
Win32 API definitions. */
-static inline int
+__GTHREAD_INLINE int
__gthread_detach (__gthread_t __thr)
{
return __gthr_win32_detach (__thr);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_equal (__gthread_t __thr1, __gthread_t __thr2)
{
return __gthr_win32_equal (__thr1, __thr2);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_yield (void)
{
return __gthr_win32_yield ();
}
-static inline int
+__GTHREAD_INLINE int
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
{
if (__gthread_active_p ())
@@ -490,43 +501,43 @@ __gthread_once (__gthread_once_t *__once, void (*__func) (void))
return -1;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
{
return __gthr_win32_key_create (__key, __dtor);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_key_delete (__gthread_key_t __key)
{
return __gthr_win32_key_delete (__key);
}
-static inline void *
+__GTHREAD_INLINE void *
__gthread_getspecific (__gthread_key_t __key)
{
return __gthr_win32_getspecific (__key);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_setspecific (__gthread_key_t __key, const void *__ptr)
{
return __gthr_win32_setspecific (__key, __ptr);
}
-static inline void
+__GTHREAD_INLINE void
__gthread_mutex_init_function (__gthread_mutex_t *__mutex)
{
__gthr_win32_mutex_init_function (__mutex);
}
-static inline void
+__GTHREAD_INLINE void
__gthread_mutex_destroy (__gthread_mutex_t *__mutex)
{
__gthr_win32_mutex_destroy (__mutex);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_mutex_lock (__gthread_mutex_t *__mutex)
{
if (__gthread_active_p ())
@@ -535,7 +546,7 @@ __gthread_mutex_lock (__gthread_mutex_t *__mutex)
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_mutex_trylock (__gthread_mutex_t *__mutex)
{
if (__gthread_active_p ())
@@ -544,7 +555,7 @@ __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_mutex_unlock (__gthread_mutex_t *__mutex)
{
if (__gthread_active_p ())
@@ -553,7 +564,7 @@ __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{
if (__gthread_active_p ())
@@ -564,31 +575,31 @@ __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
#if __GTHREAD_HAS_COND
-static inline void
+__GTHREAD_INLINE void
__gthread_cond_init_function (__gthread_cond_t *__cond)
{
__gthr_win32_cond_init_function (__cond);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_cond_broadcast (__gthread_cond_t *__cond)
{
return __gthr_win32_cond_broadcast (__cond);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_cond_signal (__gthread_cond_t *__cond)
{
return __gthr_win32_cond_signal (__cond);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex)
{
return __gthr_win32_cond_wait (__cond, __mutex);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex,
const __gthread_time_t *__abs_time)
{
@@ -600,11 +611,11 @@ __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex,
#else /* ! __GTHREAD_HIDE_WIN32API */
#ifndef __GTHREAD_WIN32_INLINE
-#define __GTHREAD_WIN32_INLINE static inline
+#define __GTHREAD_WIN32_INLINE __GTHREAD_INLINE
#endif
#ifndef __GTHREAD_WIN32_COND_INLINE
-#define __GTHREAD_WIN32_COND_INLINE static inline
+#define __GTHREAD_WIN32_COND_INLINE __GTHREAD_INLINE
#endif
#ifndef __GTHREAD_WIN32_ACTIVE_P
@@ -828,25 +839,25 @@ __gthread_cond_timedwait (__gthread_cond_t *__cond,
#endif /* __GTHREAD_HIDE_WIN32API */
-static inline void
+__GTHREAD_INLINE void
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
{
__gthread_mutex_init_function (__mutex);
}
-static inline void
+__GTHREAD_INLINE void
__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
{
__gthread_mutex_destroy (__mutex);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{
return __gthread_mutex_lock (__mutex);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{
return __gthread_mutex_unlock (__mutex);
@@ -854,13 +865,13 @@ __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
#if __GTHREAD_HAS_COND
-static inline int
+__GTHREAD_INLINE int
__gthread_cond_destroy (__gthread_cond_t *__cond ATTRIBUTE_UNUSED)
{
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_cond_wait_recursive (__gthread_cond_t *__cond,
__gthread_recursive_mutex_t *__mutex)
{
diff --git a/libgcc/config/i386/i386-asm.h b/libgcc/config/i386/i386-asm.h
index b4cdc7e..8638fab 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 8ef24cd..ba94c5f 100644
--- a/libgcc/config/i386/libgcc-bsd.ver
+++ b/libgcc/config/i386/libgcc-bsd.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 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 894e217..ed38eb9 100644
--- a/libgcc/config/i386/libgcc-cygming.ver
+++ b/libgcc/config/i386/libgcc-cygming.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/i386/libgcc-darwin.ver b/libgcc/config/i386/libgcc-darwin.ver
index 06560d6..fd609ea 100644
--- a/libgcc/config/i386/libgcc-darwin.ver
+++ b/libgcc/config/i386/libgcc-darwin.ver
@@ -37,10 +37,16 @@ GCC_14.0.0 {
__truncxfbf2
__trunchfbf2
# Added to GCC_14.0.0 in i386/libgcc-glibc.ver.
+ __mulbitint3
+ __divmodbitint4
+ __fixsfbitint
+ __fixdfbitint
__fixxfbitint
__fixtfbitint
__floatbitintbf
__floatbitinthf
+ __floatbitintsf
+ __floatbitintdf
__floatbitintxf
__floatbitinttf
}
diff --git a/libgcc/config/i386/libgcc-glibc.ver b/libgcc/config/i386/libgcc-glibc.ver
index 5b360ac1..9e47b9a 100644
--- a/libgcc/config/i386/libgcc-glibc.ver
+++ b/libgcc/config/i386/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
@@ -229,10 +229,16 @@ GCC_13.0.0 {
%inherit GCC_14.0.0 GCC_13.0.0
GCC_14.0.0 {
+ __mulbitint3
+ __divmodbitint4
+ __fixsfbitint
+ __fixdfbitint
__fixxfbitint
__fixtfbitint
__floatbitintbf
__floatbitinthf
+ __floatbitintsf
+ __floatbitintdf
__floatbitintxf
__floatbitinttf
}
diff --git a/libgcc/config/i386/libgcc-mingw.ver b/libgcc/config/i386/libgcc-mingw.ver
index 64c8ed4..06511b1 100644
--- a/libgcc/config/i386/libgcc-mingw.ver
+++ b/libgcc/config/i386/libgcc-mingw.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 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 77570b6..538bb69 100644
--- a/libgcc/config/i386/libgcc-sol2.ver
+++ b/libgcc/config/i386/libgcc-sol2.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
@@ -144,10 +144,16 @@ GCC_14.0.0 {
__truncxfbf2
__trunchfbf2
# Added to GCC_14.0.0 in i386/libgcc-glibc.ver.
+ __mulbitint3
+ __divmodbitint4
+ __fixsfbitint
+ __fixdfbitint
__fixxfbitint
__fixtfbitint
__floatbitintbf
__floatbitinthf
+ __floatbitintsf
+ __floatbitintdf
__floatbitintxf
__floatbitinttf
}
diff --git a/libgcc/config/i386/linux-unwind.h b/libgcc/config/i386/linux-unwind.h
index 9974e61..8f37642 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -33,12 +33,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#ifndef inhibit_libc
-/* There's no sys/ucontext.h for glibc 2.0, so no
- signal-turned-exceptions for them. There's also no configure-run for
- the target, so we can't check on (e.g.) HAVE_SYS_UCONTEXT_H. Using the
- target libc version macro should be enough. */
-#if defined __GLIBC__ && !(__GLIBC__ == 2 && __GLIBC_MINOR__ == 0)
-
#include <signal.h>
#include <sys/ucontext.h>
@@ -199,5 +193,4 @@ x86_frob_update_context (struct _Unwind_Context *context,
}
#endif /* ifdef __x86_64__ */
-#endif /* not glibc 2.0 */
#endif /* ifdef inhibit_libc */
diff --git a/libgcc/config/i386/morestack.S b/libgcc/config/i386/morestack.S
index 1366a59..7db4d2c 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 8fb9872..97b748a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 0345070..d8ff3bf 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 7dd11c5..e15e435 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 cac85b7..702f23b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 8243712..1412eec 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 9bcb8d4..29f968e 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 4f4d3ff..376eca5 100644
--- a/libgcc/config/i386/sfp-exceptions.c
+++ b/libgcc/config/i386/sfp-exceptions.c
@@ -1,16 +1,16 @@
/*
- * Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2012-2025 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.
diff --git a/libgcc/config/i386/shadow-stack-unwind.h b/libgcc/config/i386/shadow-stack-unwind.h
index 144cae2..56d03a8 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/i386/sol2-unwind.h b/libgcc/config/i386/sol2-unwind.h
index 6fd79a2..c16b6e5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/i386/t-darwin b/libgcc/config/i386/t-darwin
index 4c18da1..c6b3aca 100644
--- a/libgcc/config/i386/t-darwin
+++ b/libgcc/config/i386/t-darwin
@@ -4,6 +4,3 @@ LIB2FUNCS_EXCLUDE = _fixtfdi _fixunstfdi _floatditf _floatunditf
# Extra symbols for this port.
SHLIB_MAPFILES += $(srcdir)/config/i386/libgcc-darwin.ver
-
-# Build a legacy libgcc_s.1
-BUILD_LIBGCCS1 = YES
diff --git a/libgcc/config/i386/value-unwind.h b/libgcc/config/i386/value-unwind.h
index 0fa04d372..642028b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 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 e67a143..c610c50 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
Contributed by Pascal Obry <obry@adacore.com>
This file is part of GCC.
@@ -45,7 +45,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
some foreign code for which no unwind frame can be found. If this is
a call from the Windows signal handler, then:
- 2) We must get the signal context information.
+ 2) We must get the signal context information.
* With the standard exception filter:
@@ -120,7 +120,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define MD_FALLBACK_FRAME_STATE_FOR i386_w32_fallback_frame_state
static _Unwind_Reason_Code
-i386_w32_fallback_frame_state (struct _Unwind_Context *context,
+i386_w32_fallback_frame_state (struct _Unwind_Context *context,
_Unwind_FrameState *fs)
{
@@ -136,7 +136,7 @@ i386_w32_fallback_frame_state (struct _Unwind_Context *context,
PCONTEXT proc_ctx_;
long new_cfa_;
- if (SIG_SEH1)
+ if (SIG_SEH1)
proc_ctx_ = (PCONTEXT) (*(int*)(ctx_cfa_ + 56));
else if (SIG_SEH2)
proc_ctx_ = (PCONTEXT) (*(int*)(ctx_cfa_ + 8));
@@ -179,9 +179,9 @@ i386_w32_fallback_frame_state (struct _Unwind_Context *context,
one of it's probes prior to the real SP adjustment. The only
operations of interest performed is "pushl %ecx", followed by
ecx clobbering. */
- else if (SIG_ALLOCA)
+ else if (SIG_ALLOCA)
{
- /* Only one push between entry in _alloca and the probe trap. */
+ /* Only one push between entry in _alloca and the probe trap. */
long new_cfa_ = (long) ctx_cfa_ + 4;
fs->regs.cfa_how = CFA_REG_OFFSET;
diff --git a/libgcc/config/ia64/crtbegin.S b/libgcc/config/ia64/crtbegin.S
index c03e35a..52dfc8a 100644
--- a/libgcc/config/ia64/crtbegin.S
+++ b/libgcc/config/ia64/crtbegin.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Jes Sorensen, <Jes.Sorensen@cern.ch>
This file is part of GCC.
diff --git a/libgcc/config/ia64/crtend.S b/libgcc/config/ia64/crtend.S
index 91e82db..4c067dd 100644
--- a/libgcc/config/ia64/crtend.S
+++ b/libgcc/config/ia64/crtend.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 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 3c57718..a2b8218 100644
--- a/libgcc/config/ia64/crtfastmath.c
+++ b/libgcc/config/ia64/crtfastmath.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 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 aad51e6..adb3fea 100644
--- a/libgcc/config/ia64/crti.S
+++ b/libgcc/config/ia64/crti.S
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2024 Free Software Foundation, Inc.
+# Copyright (C) 2000-2025 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 af55199..e9e5f8e 100644
--- a/libgcc/config/ia64/crtn.S
+++ b/libgcc/config/ia64/crtn.S
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2024 Free Software Foundation, Inc.
+# Copyright (C) 2000-2025 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 814e997..79cee5a 100644
--- a/libgcc/config/ia64/fde-glibc.c
+++ b/libgcc/config/ia64/fde-glibc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 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 25e103c..12bd5f0 100644
--- a/libgcc/config/ia64/fde-vms.c
+++ b/libgcc/config/ia64/fde-vms.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
Contributed by Douglas B Rupp <rupp@gnat.com>
This file is part of GCC.
@@ -55,7 +55,7 @@ typedef unsigned long long uqword;
/* ENTRY is the unwind table entry found for a PC part of call chain we're
unwinding through. Return whether we should force the generic unwinder
to resort to "fallback" processing. */
-
+
static int
force_fallback_processing_for (void * pc, vms_unw_table_entry * entry)
{
@@ -100,7 +100,7 @@ force_fallback_processing_for (void * pc, vms_unw_table_entry * entry)
return 0;
/* The OSSD block is found past the header, unwind descriptor area
- and condition handler pointer, if any. */
+ and condition handler pointer, if any. */
ossd = (ossddef *)
/* Beware: uqword pointer arithmetic below. */
(unw_info_block
@@ -111,16 +111,16 @@ force_fallback_processing_for (void * pc, vms_unw_table_entry * entry)
/* "A General Information segment may be omitted if all of its fields
would have their default values. If a General Information segment
is present, it must be the first in the OSSD area." So ... */
-
+
if (eh_debug)
printf ("ossd @ 0x%p\n", ossd);
-
+
if (eh_debug && ossd->ossd$v_type == OSSD$K_GENERAL_INFO)
printf ("exc_frame = %d - bot_frame = %d - base_frame = %d\n",
- ossd->ossd$v_exception_frame,
+ ossd->ossd$v_exception_frame,
ossd->ossd$v_bottom_of_stack,
ossd->ossd$v_base_frame);
-
+
return
ossd->ossd$v_type == OSSD$K_GENERAL_INFO
&& (ossd->ossd$v_exception_frame
diff --git a/libgcc/config/ia64/lib1funcs.S b/libgcc/config/ia64/lib1funcs.S
index 452809e..626a026 100644
--- a/libgcc/config/ia64/lib1funcs.S
+++ b/libgcc/config/ia64/lib1funcs.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 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 2004893..ca87406 100644
--- a/libgcc/config/ia64/libgcc-glibc.ver
+++ b/libgcc/config/ia64/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 90ce0e4..88e8489 100644
--- a/libgcc/config/ia64/libgcc-ia64.ver
+++ b/libgcc/config/ia64/libgcc-ia64.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2024 Free Software Foundation, Inc.
+# Copyright (C) 2000-2025 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 391d523..6124271 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 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 57d235e..8198f0a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -43,7 +43,7 @@ _U_Qfne (long double a, long double b)
{
return (_U_Qfcmp (a, b, 4) == 0);
}
-
+
int
_U_Qfgt (long double a, long double b)
{
diff --git a/libgcc/config/ia64/sfp-exceptions.c b/libgcc/config/ia64/sfp-exceptions.c
index 343c65d..8c1a1e2 100644
--- a/libgcc/config/ia64/sfp-exceptions.c
+++ b/libgcc/config/ia64/sfp-exceptions.c
@@ -1,16 +1,16 @@
/*
- * Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2012-2025 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.
diff --git a/libgcc/config/ia64/tf-signs.c b/libgcc/config/ia64/tf-signs.c
index 1742944..dc923e1 100644
--- a/libgcc/config/ia64/tf-signs.c
+++ b/libgcc/config/ia64/tf-signs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
union _FP_UNION_Q
{
__float128 flt;
- struct
+ struct
{
unsigned long frac0 : 64;
unsigned long frac1 : 48;
diff --git a/libgcc/config/ia64/unwind-ia64.c b/libgcc/config/ia64/unwind-ia64.c
index 9c9a107..75208ea 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Andrew MacLeod <amacleod@cygnus.com>
Andrew Haley <aph@cygnus.com>
David Mosberger-Tang <davidm@hpl.hp.com>
@@ -102,7 +102,7 @@ enum unw_where
UNW_WHERE_BR, /* register is saved in a branch register */
UNW_WHERE_SPREL, /* register is saved on memstack (sp-relative) */
UNW_WHERE_PSPREL, /* register is saved on memstack (psp-relative) */
-
+
/* At the end of each prologue these locations get resolved to
UNW_WHERE_PSPREL and UNW_WHERE_GR, respectively. */
UNW_WHERE_SPILL_HOME, /* register is saved in its spill home */
@@ -154,7 +154,7 @@ typedef struct unw_state_record
struct unw_reg_state curr; /* current state */
_Unwind_Personality_Fn personality;
-
+
} _Unwind_FrameState;
enum unw_nat_type
@@ -558,7 +558,7 @@ finish_prologue (struct unw_state_record *sr)
{
off = sr->spill_offset;
alloc_spill_area (&off, 16, sr->curr.reg + UNW_REG_F2,
- sr->curr.reg + UNW_REG_F31);
+ sr->curr.reg + UNW_REG_F31);
alloc_spill_area (&off, 8, sr->curr.reg + UNW_REG_B1,
sr->curr.reg + UNW_REG_B5);
alloc_spill_area (&off, 8, sr->curr.reg + UNW_REG_R4,
@@ -581,7 +581,7 @@ desc_prologue (int body, unw_word rlen, unsigned char mask,
sr->first_region = 0;
/* Check if we're done. */
- if (sr->when_target < sr->region_start + sr->region_len)
+ if (sr->when_target < sr->region_start + sr->region_len)
{
sr->done = 1;
return;
@@ -858,7 +858,7 @@ desc_is_active (unsigned char qp, unw_word t, struct unw_state_record *sr)
return 0;
if (qp > 0)
{
- if ((sr->pr_val & (1UL << qp)) == 0)
+ if ((sr->pr_val & (1UL << qp)) == 0)
return 0;
sr->pr_mask |= (1UL << qp);
}
@@ -988,7 +988,7 @@ desc_spill_sprel_p (unsigned char qp, unw_word t, unsigned char abreg,
* macros/constants before including this file:
*
* Types:
- * unw_word Unsigned integer type with at least 64 bits
+ * unw_word Unsigned integer type with at least 64 bits
*
* Register names:
* UNW_REG_BSP
@@ -1821,7 +1821,7 @@ uw_frame_state_for (struct _Unwind_Context *context, _Unwind_FrameState *fs)
designate "condition handlers" with very different arguments than what we
would be providing. Such cases are typically identified from OS specific
bits in the unwind information block header, and checked by the target
- MD_UNW_COMPATIBLE_PERSONALITY_P macro.
+ MD_UNW_COMPATIBLE_PERSONALITY_P macro.
We just pretend there is no personality from our standpoint in such
situations, and expect GCC not to set the identifying bits itself so that
@@ -1884,7 +1884,7 @@ skip_unwind_info:
For other frames the procedure is by definition non-leaf so the pfs
is saved and restored and thus effectively dead in the body; only
the cfm need therefore be restored.
-
+
Here we have 2 cases:
- either the pfs is saved and restored and thus effectively dead
like in regular frames; then we do nothing special and restore
@@ -2112,7 +2112,7 @@ uw_advance_context (struct _Unwind_Context *context, _Unwind_FrameState *fs)
/* Fill in CONTEXT for top-of-stack. The only valid registers at this
level will be the return address and the CFA. Note that CFA = SP+16. */
-
+
#define uw_init_context(CONTEXT) \
do { \
/* ??? There is a whole lot o code in uw_install_context that \
@@ -2199,7 +2199,7 @@ uw_install_context (struct _Unwind_Context *current __attribute__((unused)),
}
}
- /* The value in uc_bsp that we've computed is that for the
+ /* The value in uc_bsp that we've computed is that for the
target function. The value that we install below will be
adjusted by the BR.RET instruction based on the contents
of AR.PFS. So we must unadjust that here. */
@@ -2418,7 +2418,7 @@ uw_install_context (struct _Unwind_Context *current __attribute__((unused)),
";; \n\t"
"mov.m ar.rsc = r29 \n\t"
";; \n\t"
- /* This must be done before setting AR.BSPSTORE, otherwise
+ /* This must be done before setting AR.BSPSTORE, otherwise
AR.BSP will be initialized with a random displacement
below the value we want, based on the current number of
dirty stacked registers. */
diff --git a/libgcc/config/ia64/unwind-ia64.h b/libgcc/config/ia64/unwind-ia64.h
index 82c1237..d892404 100644
--- a/libgcc/config/ia64/unwind-ia64.h
+++ b/libgcc/config/ia64/unwind-ia64.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Andrew MacLeod <amacleod@cygnus.com>
Andrew Haley <aph@cygnus.com>
@@ -41,7 +41,7 @@ struct unw_table_entry
/* Accessors to fields of an unwind info block header. In this common file to
be visible from all the units involved in a target implementation. */
-
+
#ifndef __USING_SJLJ_EXCEPTIONS__
#define UNW_VER(x) ((x) >> 48)
#define UNW_FLAG_MASK 0x0000ffff00000000
diff --git a/libgcc/config/ia64/vms-crtinit.S b/libgcc/config/ia64/vms-crtinit.S
index 41f7fe9..84b4918 100644
--- a/libgcc/config/ia64/vms-crtinit.S
+++ b/libgcc/config/ia64/vms-crtinit.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 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 797a1cc..ec28296 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -72,7 +72,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
INVO_CONTEXT_BLK local_icb;
INVO_CONTEXT_BLK *icb = &local_icb;
-
+
CHFCTX * chfctx;
CHF$MECH_ARRAY * chfmech;
CHF64$SIGNAL_ARRAY *chfsig64;
@@ -90,7 +90,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
const uint try_bs_copy_mask = (1 << 16);
eh_debug = EH_DEBUG ? atoi (EH_DEBUG) : 0;
-
+
/* Fetch and clear the try_bs_copy bit. */
try_bs_copy = (uint)eh_debug & try_bs_copy_mask;
eh_debug &= ~try_bs_copy_mask;
@@ -124,9 +124,9 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
/* Beware: we might be unwinding through nested condition handlers, so the
dispatcher frame we seek might not be the first one on the way up. Loop
- thus. */
+ thus. */
do {
-
+
/* Seek the next dispatcher frame up the "current" point. Stop if we
either get past the target context or hit the bottom-of-stack along
the way. */
@@ -134,7 +134,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
FAIL_IF (status == 0);
FAIL_IF ((uw_reg)icb->libicb$ih_sp > (uw_reg)context->psp
|| DENOTES_BOTTOM_OF_STACK (icb));
-
+
if (eh_debug)
printf ("frame%s sp @ 0x%llx, pc @ 0x%llx bsp=0x%llx\n",
DENOTES_VMS_DISPATCHER_FRAME (icb) ? " (dispatcher)" : "",
@@ -162,13 +162,13 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
chfctx = icb->libicb$ph_chfctx_addr;
FAIL_IF (chfctx == 0);
-
+
chfmech = (CHF$MECH_ARRAY *)chfctx->chfctx$q_mcharglst;
FAIL_IF (chfmech == 0);
chfsig64 = (CHF64$SIGNAL_ARRAY *)chfmech->chf$ph_mch_sig64_addr;
FAIL_IF (chfsig64 == 0);
-
+
intstk = (INTSTK *)chfmech->chf$q_mch_esf_addr;
FAIL_IF (intstk == 0 || intstk->intstk$b_subtype == DYN$C_SSENTRY);
@@ -222,7 +222,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
context->unat_loc = (uw_loc)&intstk->intstk$q_unat;
/* Branch register locations. */
-
+
{
uw_reg * ctxregs = (uw_reg *)&intstk->intstk$q_b0;
@@ -241,7 +241,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
uw_reg q_bspstore = (uw_reg) intstk->intstk$q_bspstore;
uw_reg q_bspbase = (uw_reg) intstk->intstk$q_bspbase;
uw_reg ih_bspbase = (uw_reg) icb->libicb$ih_bspbase;
-
+
if (eh_debug)
printf ("q_bspstore = 0x%lx, q_bsp = 0x%lx, q_bspbase = 0x%lx\n"
"ih_bspbase = 0x%lx\n",
@@ -263,7 +263,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
/* Not clear if these are the proper arguments here. This is what
looked the closest to what is performed in the Linux case. */
}
-
+
}
context->bsp = (uw_reg)intstk->intstk$q_bsp;
@@ -274,7 +274,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
/* We're directly setting up the "context" for a VMS exception handler.
The "previous SP" for it is the SP upon the handler's entry, that is
- the SP at the condition/interruption/exception point. */
+ the SP at the condition/interruption/exception point. */
context->psp = (uw_reg)icb->libicb$ih_sp;
/* Previous Frame State location. What eventually ends up in pfs_loc is
@@ -305,4 +305,4 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
return _URC_NO_REASON;
}
-
+
diff --git a/libgcc/config/iq2000/lib2funcs.c b/libgcc/config/iq2000/lib2funcs.c
index 7422e80..fc046a3 100644
--- a/libgcc/config/iq2000/lib2funcs.c
+++ b/libgcc/config/iq2000/lib2funcs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/ChangeLog b/libgcc/config/libbid/ChangeLog
index db0fc68..9bc4518 100644
--- a/libgcc/config/libbid/ChangeLog
+++ b/libgcc/config/libbid/ChangeLog
@@ -1,3 +1,96 @@
+2025-05-15 liuhongt <hongtao.liu@intel.com>
+
+ * bid128_string.c (MIN_DIGITS): New macro.
+ (bid128_from_string): Bug fix. Conversion from very long input
+ string to decimal.
+
+2024-11-14 Christophe Lyon <christophe.lyon@linaro.org>
+
+ PR libgcc/117537
+ * bid_conf.h (COPY_ARG_REF): Fix initializer.
+ (COPY_ARG_VAL): Likewise.
+
+2024-10-25 Jakub Jelinek <jakub@redhat.com>
+
+ * _le_td.c: Remove trailing whitespace.
+ * bid128_compare.c: Likewise.
+ * bid_div_macros.h: Likewise.
+ * bid64_to_bid128.c: Likewise.
+ * bid64_to_uint32.c: Likewise.
+ * bid128_to_uint64.c: Likewise.
+ * bid64_div.c: Likewise.
+ * bid128_round_integral.c: Likewise.
+ * bid_binarydecimal.c: Likewise.
+ * bid128_string.c: Likewise.
+ * bid_flag_operations.c: Likewise.
+ * bid128_to_int64.c: Likewise.
+ * _mul_sd.c: Likewise.
+ * bid64_mul.c: Likewise.
+ * bid128_noncomp.c: Likewise.
+ * _gt_dd.c: Likewise.
+ * bid64_add.c: Likewise.
+ * bid64_string.c: Likewise.
+ * bid_from_int.c: Likewise.
+ * bid128.c: Likewise.
+ * _ge_dd.c: Likewise.
+ * _ne_sd.c: Likewise.
+ * _dd_to_td.c: Likewise.
+ * _unord_sd.c: Likewise.
+ * bid64_to_uint64.c: Likewise.
+ * _gt_sd.c: Likewise.
+ * _sd_to_td.c: Likewise.
+ * _addsub_td.c: Likewise.
+ * _ne_td.c: Likewise.
+ * bid_dpd.c: Likewise.
+ * bid128_add.c: Likewise.
+ * bid128_next.c: Likewise.
+ * _lt_sd.c: Likewise.
+ * bid64_next.c: Likewise.
+ * bid128_mul.c: Likewise.
+ * _lt_dd.c: Likewise.
+ * _ge_td.c: Likewise.
+ * _unord_dd.c: Likewise.
+ * bid64_sqrt.c: Likewise.
+ * bid_sqrt_macros.h: Likewise.
+ * bid64_fma.c: Likewise.
+ * _sd_to_dd.c: Likewise.
+ * bid_conf.h: Likewise.
+ * bid64_noncomp.c: Likewise.
+ * bid_gcc_intrinsics.h: Likewise.
+ * _gt_td.c: Likewise.
+ * _ge_sd.c: Likewise.
+ * bid128_minmax.c: Likewise.
+ * bid128_quantize.c: Likewise.
+ * bid32_to_bid64.c: Likewise.
+ * bid_round.c: Likewise.
+ * _td_to_sd.c: Likewise.
+ * bid_inline_add.h: Likewise.
+ * bid128_fma.c: Likewise.
+ * _eq_td.c: Likewise.
+ * bid32_to_bid128.c: Likewise.
+ * bid64_rem.c: Likewise.
+ * bid128_2_str_tables.c: Likewise.
+ * _mul_dd.c: Likewise.
+ * _dd_to_sd.c: Likewise.
+ * bid128_div.c: Likewise.
+ * _lt_td.c: Likewise.
+ * bid64_compare.c: Likewise.
+ * bid64_to_int32.c: Likewise.
+ * _unord_td.c: Likewise.
+ * bid128_rem.c: Likewise.
+ * bid_internal.h: Likewise.
+ * bid64_to_int64.c: Likewise.
+ * _eq_dd.c: Likewise.
+ * _td_to_dd.c: Likewise.
+ * bid128_to_int32.c: Likewise.
+ * bid128_to_uint32.c: Likewise.
+ * _ne_dd.c: Likewise.
+ * bid64_quantize.c: Likewise.
+ * _le_dd.c: Likewise.
+ * bid64_round_integral.c: Likewise.
+ * _le_sd.c: Likewise.
+ * bid64_minmax.c: Likewise.
+
2024-05-05 liuhongt <hongtao.liu@intel.com>
* bid128_fma.c (add_and_round): Fix bug: the result
@@ -521,7 +614,7 @@
* inline_bid_add.h: Likewise.
* sqrt_macros.h: Likewise.
-Copyright (C) 2007-2024 Free Software Foundation, Inc.
+Copyright (C) 2007-2025 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 285966a..ec6f3b9 100644
--- a/libgcc/config/libbid/_addsub_dd.c
+++ b/libgcc/config/libbid/_addsub_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 89cf1ea..ac95bd7 100644
--- a/libgcc/config/libbid/_addsub_sd.c
+++ b/libgcc/config/libbid/_addsub_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 5b8632d..ffbf783 100644
--- a/libgcc/config/libbid/_addsub_td.c
+++ b/libgcc/config/libbid/_addsub_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -23,7 +23,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
-#include "bid_gcc_intrinsics.h"
+#include "bid_gcc_intrinsics.h"
_Decimal128
__bid_addtd3 (_Decimal128 x, _Decimal128 y) {
diff --git a/libgcc/config/libbid/_dd_to_df.c b/libgcc/config/libbid/_dd_to_df.c
index cb75838..54d37b2 100644
--- a/libgcc/config/libbid/_dd_to_df.c
+++ b/libgcc/config/libbid/_dd_to_df.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 45c39f0..a0ecb1a 100644
--- a/libgcc/config/libbid/_dd_to_di.c
+++ b/libgcc/config/libbid/_dd_to_di.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_dd_to_hf.c b/libgcc/config/libbid/_dd_to_hf.c
index 4e03b98..ac52350 100644
--- a/libgcc/config/libbid/_dd_to_hf.c
+++ b/libgcc/config/libbid/_dd_to_hf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 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 a46be79..c9e3441 100644
--- a/libgcc/config/libbid/_dd_to_sd.c
+++ b/libgcc/config/libbid/_dd_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
-
+
_Decimal32
__bid_truncddsd2 (_Decimal64 x) {
union decimal32 res;
diff --git a/libgcc/config/libbid/_dd_to_sf.c b/libgcc/config/libbid/_dd_to_sf.c
index 6cfd2a9..decd045 100644
--- a/libgcc/config/libbid/_dd_to_sf.c
+++ b/libgcc/config/libbid/_dd_to_sf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 6b35f12..42edfb1 100644
--- a/libgcc/config/libbid/_dd_to_si.c
+++ b/libgcc/config/libbid/_dd_to_si.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 b850a34..c9c85cc 100644
--- a/libgcc/config/libbid/_dd_to_td.c
+++ b/libgcc/config/libbid/_dd_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
-
+
_Decimal128
__bid_extendddtd2 (_Decimal64 x) {
union decimal128 res;
diff --git a/libgcc/config/libbid/_dd_to_tf.c b/libgcc/config/libbid/_dd_to_tf.c
index ad54415..596a5e6 100644
--- a/libgcc/config/libbid/_dd_to_tf.c
+++ b/libgcc/config/libbid/_dd_to_tf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 3d8a116..02e74f6 100644
--- a/libgcc/config/libbid/_dd_to_udi.c
+++ b/libgcc/config/libbid/_dd_to_udi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 9918756..c0be751 100644
--- a/libgcc/config/libbid/_dd_to_usi.c
+++ b/libgcc/config/libbid/_dd_to_usi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 9c45c9e..aaca282 100644
--- a/libgcc/config/libbid/_dd_to_xf.c
+++ b/libgcc/config/libbid/_dd_to_xf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 5ebe0c9..9ce41f6 100644
--- a/libgcc/config/libbid/_df_to_dd.c
+++ b/libgcc/config/libbid/_df_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 1b4ff92..d560b0d 100644
--- a/libgcc/config/libbid/_df_to_sd.c
+++ b/libgcc/config/libbid/_df_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 bea8240..15f563e 100644
--- a/libgcc/config/libbid/_df_to_td.c
+++ b/libgcc/config/libbid/_df_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 e1b2e37..5ba9402 100644
--- a/libgcc/config/libbid/_di_to_dd.c
+++ b/libgcc/config/libbid/_di_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 bc038ef..3d7ab28 100644
--- a/libgcc/config/libbid/_di_to_sd.c
+++ b/libgcc/config/libbid/_di_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 3af9b2e..ef81287 100644
--- a/libgcc/config/libbid/_di_to_td.c
+++ b/libgcc/config/libbid/_di_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 148e4cf..308ce32 100644
--- a/libgcc/config/libbid/_div_dd.c
+++ b/libgcc/config/libbid/_div_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 7a87f95..7b60720 100644
--- a/libgcc/config/libbid/_div_sd.c
+++ b/libgcc/config/libbid/_div_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 f12f003..6130a93 100644
--- a/libgcc/config/libbid/_div_td.c
+++ b/libgcc/config/libbid/_div_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 11cb013..5449f51 100644
--- a/libgcc/config/libbid/_eq_dd.c
+++ b/libgcc/config/libbid/_eq_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_eqdd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = __bid64_quiet_equal (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_eq_sd.c b/libgcc/config/libbid/_eq_sd.c
index 1a45122..fc17cb1 100644
--- a/libgcc/config/libbid/_eq_sd.c
+++ b/libgcc/config/libbid/_eq_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 8dcbce3..ef4ac55 100644
--- a/libgcc/config/libbid/_eq_td.c
+++ b/libgcc/config/libbid/_eq_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_eqtd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = __bid128_quiet_equal (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_ge_dd.c b/libgcc/config/libbid/_ge_dd.c
index df34a44..99ee890 100644
--- a/libgcc/config/libbid/_ge_dd.c
+++ b/libgcc/config/libbid/_ge_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_gedd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = __bid64_quiet_greater_equal (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_ge_sd.c b/libgcc/config/libbid/_ge_sd.c
index 9b3e398..71f3052 100644
--- a/libgcc/config/libbid/_ge_sd.c
+++ b/libgcc/config/libbid/_ge_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -30,7 +30,7 @@ __bid_gesd2 (_Decimal32 x, _Decimal32 y) {
CMPtype res;
UINT64 x64, y64;
union decimal32 ux, uy;
-
+
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);
diff --git a/libgcc/config/libbid/_ge_td.c b/libgcc/config/libbid/_ge_td.c
index f44e155..53330b1 100644
--- a/libgcc/config/libbid/_ge_td.c
+++ b/libgcc/config/libbid/_ge_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_getd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = __bid128_quiet_greater_equal (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_gt_dd.c b/libgcc/config/libbid/_gt_dd.c
index 6986b5f..ae0cd53 100644
--- a/libgcc/config/libbid/_gt_dd.c
+++ b/libgcc/config/libbid/_gt_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_gtdd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = __bid64_quiet_greater (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_gt_sd.c b/libgcc/config/libbid/_gt_sd.c
index dfad7f9..c1e22b3 100644
--- a/libgcc/config/libbid/_gt_sd.c
+++ b/libgcc/config/libbid/_gt_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -30,7 +30,7 @@ __bid_gtsd2 (_Decimal32 x, _Decimal32 y) {
CMPtype res;
UINT64 x64, y64;
union decimal32 ux, uy;
-
+
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);
diff --git a/libgcc/config/libbid/_gt_td.c b/libgcc/config/libbid/_gt_td.c
index 9e14c9d..82e7557 100644
--- a/libgcc/config/libbid/_gt_td.c
+++ b/libgcc/config/libbid/_gt_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_gttd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = __bid128_quiet_greater (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_hf_to_dd.c b/libgcc/config/libbid/_hf_to_dd.c
index 27da232..db60a49 100644
--- a/libgcc/config/libbid/_hf_to_dd.c
+++ b/libgcc/config/libbid/_hf_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_hf_to_sd.c b/libgcc/config/libbid/_hf_to_sd.c
index 2097741..3871642 100644
--- a/libgcc/config/libbid/_hf_to_sd.c
+++ b/libgcc/config/libbid/_hf_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_hf_to_td.c b/libgcc/config/libbid/_hf_to_td.c
index c808533..191c36e 100644
--- a/libgcc/config/libbid/_hf_to_td.c
+++ b/libgcc/config/libbid/_hf_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 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 b9b00da..7175e49 100644
--- a/libgcc/config/libbid/_isinfd128.c
+++ b/libgcc/config/libbid/_isinfd128.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 a81e06d..22d79ed 100644
--- a/libgcc/config/libbid/_isinfd32.c
+++ b/libgcc/config/libbid/_isinfd32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 c506d12..7beb9da 100644
--- a/libgcc/config/libbid/_isinfd64.c
+++ b/libgcc/config/libbid/_isinfd64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 25173c8..af9e579 100644
--- a/libgcc/config/libbid/_le_dd.c
+++ b/libgcc/config/libbid/_le_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_ledd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = __bid64_quiet_less_equal (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_le_sd.c b/libgcc/config/libbid/_le_sd.c
index b790ab2..86826b6 100644
--- a/libgcc/config/libbid/_le_sd.c
+++ b/libgcc/config/libbid/_le_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -30,7 +30,7 @@ __bid_lesd2 (_Decimal32 x, _Decimal32 y) {
CMPtype res;
UINT64 x64, y64;
union decimal32 ux, uy;
-
+
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);
diff --git a/libgcc/config/libbid/_le_td.c b/libgcc/config/libbid/_le_td.c
index 911460d..ae1cb81 100644
--- a/libgcc/config/libbid/_le_td.c
+++ b/libgcc/config/libbid/_le_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_letd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = __bid128_quiet_less_equal (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_lt_dd.c b/libgcc/config/libbid/_lt_dd.c
index fb1e0f5..b7f7e51 100644
--- a/libgcc/config/libbid/_lt_dd.c
+++ b/libgcc/config/libbid/_lt_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_ltdd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = -__bid64_quiet_less (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_lt_sd.c b/libgcc/config/libbid/_lt_sd.c
index 443c729..03606544 100644
--- a/libgcc/config/libbid/_lt_sd.c
+++ b/libgcc/config/libbid/_lt_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -30,7 +30,7 @@ __bid_ltsd2 (_Decimal32 x, _Decimal32 y) {
CMPtype res;
UINT64 x64, y64;
union decimal32 ux, uy;
-
+
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);
diff --git a/libgcc/config/libbid/_lt_td.c b/libgcc/config/libbid/_lt_td.c
index 60280ad..43565ca 100644
--- a/libgcc/config/libbid/_lt_td.c
+++ b/libgcc/config/libbid/_lt_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_lttd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = -__bid128_quiet_less (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_mul_dd.c b/libgcc/config/libbid/_mul_dd.c
index 07fe213..924f408 100644
--- a/libgcc/config/libbid/_mul_dd.c
+++ b/libgcc/config/libbid/_mul_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,7 +28,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
_Decimal64
__bid_muldd3 (_Decimal64 x, _Decimal64 y) {
union decimal64 ux, uy, res;
-
+
ux.d = x;
uy.d = y;
res.i = __bid64_mul (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_mul_sd.c b/libgcc/config/libbid/_mul_sd.c
index 960f8f4..5824aab 100644
--- a/libgcc/config/libbid/_mul_sd.c
+++ b/libgcc/config/libbid/_mul_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ _Decimal32
__bid_mulsd3 (_Decimal32 x, _Decimal32 y) {
UINT64 x64, y64, res64;
union decimal32 ux, uy, res;
-
+
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);
diff --git a/libgcc/config/libbid/_mul_td.c b/libgcc/config/libbid/_mul_td.c
index 8d45e46..87affcc 100644
--- a/libgcc/config/libbid/_mul_td.c
+++ b/libgcc/config/libbid/_mul_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 d1341de..e6ac09d 100644
--- a/libgcc/config/libbid/_ne_dd.c
+++ b/libgcc/config/libbid/_ne_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_nedd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = __bid64_quiet_not_equal (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_ne_sd.c b/libgcc/config/libbid/_ne_sd.c
index 488a35a..965abde 100644
--- a/libgcc/config/libbid/_ne_sd.c
+++ b/libgcc/config/libbid/_ne_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -30,7 +30,7 @@ __bid_nesd2 (_Decimal32 x, _Decimal32 y) {
CMPtype res;
UINT64 x64, y64;
union decimal32 ux, uy;
-
+
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);
diff --git a/libgcc/config/libbid/_ne_td.c b/libgcc/config/libbid/_ne_td.c
index 173ffa2..0f13ab7 100644
--- a/libgcc/config/libbid/_ne_td.c
+++ b/libgcc/config/libbid/_ne_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_netd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = __bid128_quiet_not_equal (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_sd_to_dd.c b/libgcc/config/libbid/_sd_to_dd.c
index d783f74..c6a9743 100644
--- a/libgcc/config/libbid/_sd_to_dd.c
+++ b/libgcc/config/libbid/_sd_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
-
+
_Decimal64
__bid_extendsddd2 (_Decimal32 x) {
union decimal64 res;
diff --git a/libgcc/config/libbid/_sd_to_df.c b/libgcc/config/libbid/_sd_to_df.c
index 5d141af..b17f266 100644
--- a/libgcc/config/libbid/_sd_to_df.c
+++ b/libgcc/config/libbid/_sd_to_df.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 5c1467e..e8e00fa 100644
--- a/libgcc/config/libbid/_sd_to_di.c
+++ b/libgcc/config/libbid/_sd_to_di.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_sd_to_hf.c b/libgcc/config/libbid/_sd_to_hf.c
index 54a3755..49a0c24 100644
--- a/libgcc/config/libbid/_sd_to_hf.c
+++ b/libgcc/config/libbid/_sd_to_hf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 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 ad1d309..277cf4c 100644
--- a/libgcc/config/libbid/_sd_to_sf.c
+++ b/libgcc/config/libbid/_sd_to_sf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 397b6ca..66a96d4 100644
--- a/libgcc/config/libbid/_sd_to_si.c
+++ b/libgcc/config/libbid/_sd_to_si.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 903b666..69cb33c 100644
--- a/libgcc/config/libbid/_sd_to_td.c
+++ b/libgcc/config/libbid/_sd_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
-
+
_Decimal128
__bid_extendsdtd2 (_Decimal32 x) {
union decimal128 res;
diff --git a/libgcc/config/libbid/_sd_to_tf.c b/libgcc/config/libbid/_sd_to_tf.c
index 0600aab..a44a0d8 100644
--- a/libgcc/config/libbid/_sd_to_tf.c
+++ b/libgcc/config/libbid/_sd_to_tf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 8cd805c..98f2d47 100644
--- a/libgcc/config/libbid/_sd_to_udi.c
+++ b/libgcc/config/libbid/_sd_to_udi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 83a7345..f773e44 100644
--- a/libgcc/config/libbid/_sd_to_usi.c
+++ b/libgcc/config/libbid/_sd_to_usi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 cb8251a..8a3e5cc 100644
--- a/libgcc/config/libbid/_sd_to_xf.c
+++ b/libgcc/config/libbid/_sd_to_xf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 470d8fb..49e3a90 100644
--- a/libgcc/config/libbid/_sf_to_dd.c
+++ b/libgcc/config/libbid/_sf_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 dd56be7..853a081 100644
--- a/libgcc/config/libbid/_sf_to_sd.c
+++ b/libgcc/config/libbid/_sf_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 8425560..082af5b 100644
--- a/libgcc/config/libbid/_sf_to_td.c
+++ b/libgcc/config/libbid/_sf_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 3a8e23a..bb99938 100644
--- a/libgcc/config/libbid/_si_to_dd.c
+++ b/libgcc/config/libbid/_si_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 b9732da..621cc14 100644
--- a/libgcc/config/libbid/_si_to_sd.c
+++ b/libgcc/config/libbid/_si_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 16dbbb4..b56f1e5 100644
--- a/libgcc/config/libbid/_si_to_td.c
+++ b/libgcc/config/libbid/_si_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 4297cbf..f6b8398 100644
--- a/libgcc/config/libbid/_td_to_dd.c
+++ b/libgcc/config/libbid/_td_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
-
+
_Decimal64
__bid_trunctddd2 (_Decimal128 x) {
union decimal128 ux;
diff --git a/libgcc/config/libbid/_td_to_df.c b/libgcc/config/libbid/_td_to_df.c
index 2707d83..92df7af 100644
--- a/libgcc/config/libbid/_td_to_df.c
+++ b/libgcc/config/libbid/_td_to_df.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 81c973f..a3b1d41 100644
--- a/libgcc/config/libbid/_td_to_di.c
+++ b/libgcc/config/libbid/_td_to_di.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/libbid/_td_to_hf.c b/libgcc/config/libbid/_td_to_hf.c
index 88dca1b..06b8725 100644
--- a/libgcc/config/libbid/_td_to_hf.c
+++ b/libgcc/config/libbid/_td_to_hf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 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 3e14073..1451e2c 100644
--- a/libgcc/config/libbid/_td_to_sd.c
+++ b/libgcc/config/libbid/_td_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
-
+
_Decimal32
__bid_trunctdsd2 (_Decimal128 x) {
union decimal128 ux;
diff --git a/libgcc/config/libbid/_td_to_sf.c b/libgcc/config/libbid/_td_to_sf.c
index 999290c..78708c3 100644
--- a/libgcc/config/libbid/_td_to_sf.c
+++ b/libgcc/config/libbid/_td_to_sf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 870a860..633bc38 100644
--- a/libgcc/config/libbid/_td_to_si.c
+++ b/libgcc/config/libbid/_td_to_si.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 13212cf..722703b 100644
--- a/libgcc/config/libbid/_td_to_tf.c
+++ b/libgcc/config/libbid/_td_to_tf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 9ba0941..8f0507f 100644
--- a/libgcc/config/libbid/_td_to_udi.c
+++ b/libgcc/config/libbid/_td_to_udi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 042dd69..fac8544 100644
--- a/libgcc/config/libbid/_td_to_usi.c
+++ b/libgcc/config/libbid/_td_to_usi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 3a61ba6..37cb397 100644
--- a/libgcc/config/libbid/_td_to_xf.c
+++ b/libgcc/config/libbid/_td_to_xf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 eebd934..ad9f4fe 100644
--- a/libgcc/config/libbid/_tf_to_dd.c
+++ b/libgcc/config/libbid/_tf_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 88e176d..ae71b1d 100644
--- a/libgcc/config/libbid/_tf_to_sd.c
+++ b/libgcc/config/libbid/_tf_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 c612d86..33efcca 100644
--- a/libgcc/config/libbid/_tf_to_td.c
+++ b/libgcc/config/libbid/_tf_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 1e6bdd4..abaa473 100644
--- a/libgcc/config/libbid/_udi_to_dd.c
+++ b/libgcc/config/libbid/_udi_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 055a4e1..827f375 100644
--- a/libgcc/config/libbid/_udi_to_sd.c
+++ b/libgcc/config/libbid/_udi_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 362b74e..d9cba2c 100644
--- a/libgcc/config/libbid/_udi_to_td.c
+++ b/libgcc/config/libbid/_udi_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 1ca3a4b..4969d5e 100644
--- a/libgcc/config/libbid/_unord_dd.c
+++ b/libgcc/config/libbid/_unord_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_unorddd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = __bid64_quiet_unordered (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_unord_sd.c b/libgcc/config/libbid/_unord_sd.c
index be245e7..a029d07 100644
--- a/libgcc/config/libbid/_unord_sd.c
+++ b/libgcc/config/libbid/_unord_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -30,7 +30,7 @@ __bid_unordsd2 (_Decimal32 x, _Decimal32 y) {
CMPtype res;
UINT64 x64, y64;
union decimal32 ux, uy;
-
+
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);
diff --git a/libgcc/config/libbid/_unord_td.c b/libgcc/config/libbid/_unord_td.c
index f9a5e2f..68056ef 100644
--- a/libgcc/config/libbid/_unord_td.c
+++ b/libgcc/config/libbid/_unord_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,7 +29,7 @@ CMPtype
__bid_unordtd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
-
+
ux.d = x;
uy.d = y;
res = __bid128_quiet_unordered (ux.i, uy.i);
diff --git a/libgcc/config/libbid/_usi_to_dd.c b/libgcc/config/libbid/_usi_to_dd.c
index 65112cf..00947af 100644
--- a/libgcc/config/libbid/_usi_to_dd.c
+++ b/libgcc/config/libbid/_usi_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 b7ffd2a..1abf79f 100644
--- a/libgcc/config/libbid/_usi_to_sd.c
+++ b/libgcc/config/libbid/_usi_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 7cda62d..af9c252 100644
--- a/libgcc/config/libbid/_usi_to_td.c
+++ b/libgcc/config/libbid/_usi_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 0001e52..d15c029 100644
--- a/libgcc/config/libbid/_xf_to_dd.c
+++ b/libgcc/config/libbid/_xf_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 b78656d..7a000f3 100644
--- a/libgcc/config/libbid/_xf_to_sd.c
+++ b/libgcc/config/libbid/_xf_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 a9f6a61..8c37d08 100644
--- a/libgcc/config/libbid/_xf_to_td.c
+++ b/libgcc/config/libbid/_xf_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 25da034..3c49d7c 100644
--- a/libgcc/config/libbid/bid128.c
+++ b/libgcc/config/libbid/bid128.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -23,7 +23,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_internal.h"
-// the first entry of nr_digits[i - 1] (where 1 <= i <= 113), indicates
+// the first entry of nr_digits[i - 1] (where 1 <= i <= 113), indicates
// the number of decimal digits needed to represent a binary number with i bits;
// however, if a binary number of i bits may require either k or k + 1 decimal
// digits, then the first entry of nr_digits[i - 1] is 0; in this case if the
@@ -900,7 +900,7 @@ int shiftright128[] = {
};
-// maskhigh128[] contains the mask to apply to the top 128 bits of the
+// maskhigh128[] contains the mask to apply to the top 128 bits of the
// 128x128-bit product in order to obtain the high bits of f2*
// the 64-bit word order is L, H
UINT64 maskhigh128[] = {
@@ -941,7 +941,7 @@ UINT64 maskhigh128[] = {
};
-// onehalf128[] contains the high bits of 1/2 positioned correctly for
+// onehalf128[] contains the high bits of 1/2 positioned correctly for
// comparison with the high bits of f2*
// the 64-bit word order is L, H
UINT64 onehalf128[] = {
@@ -983,61 +983,61 @@ UINT64 onehalf128[] = {
UINT64 ten2mk64[] = {
0x199999999999999aULL, // 10^(-1) * 2^ 64
- 0x028f5c28f5c28f5dULL, // 10^(-2) * 2^ 64
- 0x004189374bc6a7f0ULL, // 10^(-3) * 2^ 64
- 0x00346dc5d638865aULL, // 10^(-4) * 2^ 67
- 0x0029f16b11c6d1e2ULL, // 10^(-5) * 2^ 70
- 0x00218def416bdb1bULL, // 10^(-6) * 2^ 73
- 0x0035afe535795e91ULL, // 10^(-7) * 2^ 77
- 0x002af31dc4611874ULL, // 10^(-8) * 2^ 80
- 0x00225c17d04dad2aULL, // 10^(-9) * 2^ 83
- 0x0036f9bfb3af7b76ULL, // 10^(-10) * 2^ 87
- 0x002bfaffc2f2c92bULL, // 10^(-11) * 2^ 90
- 0x00232f33025bd423ULL, // 10^(-12) * 2^ 93
- 0x00384b84d092ed04ULL, // 10^(-13) * 2^ 97
- 0x002d09370d425737ULL, // 10^(-14) * 2^100
- 0x0024075f3dceac2cULL, // 10^(-15) * 2^103
- 0x0039a5652fb11379ULL, // 10^(-16) * 2^107
+ 0x028f5c28f5c28f5dULL, // 10^(-2) * 2^ 64
+ 0x004189374bc6a7f0ULL, // 10^(-3) * 2^ 64
+ 0x00346dc5d638865aULL, // 10^(-4) * 2^ 67
+ 0x0029f16b11c6d1e2ULL, // 10^(-5) * 2^ 70
+ 0x00218def416bdb1bULL, // 10^(-6) * 2^ 73
+ 0x0035afe535795e91ULL, // 10^(-7) * 2^ 77
+ 0x002af31dc4611874ULL, // 10^(-8) * 2^ 80
+ 0x00225c17d04dad2aULL, // 10^(-9) * 2^ 83
+ 0x0036f9bfb3af7b76ULL, // 10^(-10) * 2^ 87
+ 0x002bfaffc2f2c92bULL, // 10^(-11) * 2^ 90
+ 0x00232f33025bd423ULL, // 10^(-12) * 2^ 93
+ 0x00384b84d092ed04ULL, // 10^(-13) * 2^ 97
+ 0x002d09370d425737ULL, // 10^(-14) * 2^100
+ 0x0024075f3dceac2cULL, // 10^(-15) * 2^103
+ 0x0039a5652fb11379ULL, // 10^(-16) * 2^107
};
-// ten2mk128trunc[] contains T*, the top Ex >= 128 bits of 10^(-k),
-// for 1 <= k <= 34
+// ten2mk128trunc[] contains T*, the top Ex >= 128 bits of 10^(-k),
+// for 1 <= k <= 34
// the 64-bit word order is L, H
UINT128 ten2mk128trunc[] = {
{{0x9999999999999999ULL, 0x1999999999999999ULL}}, // 10^(-1) * 2^128
- {{0x28f5c28f5c28f5c2ULL, 0x028f5c28f5c28f5cULL}}, // 10^(-2) * 2^128
- {{0x9db22d0e56041893ULL, 0x004189374bc6a7efULL}}, // 10^(-3) * 2^128
- {{0x4af4f0d844d013a9ULL, 0x00346dc5d6388659ULL}}, // 10^(-4) * 2^131
- {{0x08c3f3e0370cdc87ULL, 0x0029f16b11c6d1e1ULL}}, // 10^(-5) * 2^134
- {{0x6d698fe69270b06cULL, 0x00218def416bdb1aULL}}, // 10^(-6) * 2^137
- {{0xaf0f4ca41d811a46ULL, 0x0035afe535795e90ULL}}, // 10^(-7) * 2^141
- {{0xbf3f70834acdae9fULL, 0x002af31dc4611873ULL}}, // 10^(-8) * 2^144
- {{0x65cc5a02a23e254cULL, 0x00225c17d04dad29ULL}}, // 10^(-9) * 2^147
- {{0x6fad5cd10396a213ULL, 0x0036f9bfb3af7b75ULL}}, // 10^(-10) * 2^151
- {{0xbfbde3da69454e75ULL, 0x002bfaffc2f2c92aULL}}, // 10^(-11) * 2^154
- {{0x32fe4fe1edd10b91ULL, 0x00232f33025bd422ULL}}, // 10^(-12) * 2^157
- {{0x84ca19697c81ac1bULL, 0x00384b84d092ed03ULL}}, // 10^(-13) * 2^161
- {{0x03d4e1213067bce3ULL, 0x002d09370d425736ULL}}, // 10^(-14) * 2^164
- {{0x3643e74dc052fd82ULL, 0x0024075f3dceac2bULL}}, // 10^(-15) * 2^167
- {{0x56d30baf9a1e626aULL, 0x0039a5652fb11378ULL}}, // 10^(-16) * 2^171
- {{0x12426fbfae7eb521ULL, 0x002e1dea8c8da92dULL}}, // 10^(-17) * 2^174
- {{0x41cebfcc8b9890e7ULL, 0x0024e4bba3a48757ULL}}, // 10^(-18) * 2^177
- {{0x694acc7a78f41b0cULL, 0x003b07929f6da558ULL}}, // 10^(-19) * 2^181
- {{0xbaa23d2ec729af3dULL, 0x002f394219248446ULL}}, // 10^(-20) * 2^184
- {{0xfbb4fdbf05baf297ULL, 0x0025c768141d369eULL}}, // 10^(-21) * 2^187
- {{0x2c54c931a2c4b758ULL, 0x003c7240202ebdcbULL}}, // 10^(-22) * 2^191
- {{0x89dd6dc14f03c5e0ULL, 0x00305b66802564a2ULL}}, // 10^(-23) * 2^194
- {{0xd4b1249aa59c9e4dULL, 0x0026af8533511d4eULL}}, // 10^(-24) * 2^197
- {{0x544ea0f76f60fd48ULL, 0x003de5a1ebb4fbb1ULL}}, // 10^(-25) * 2^201
- {{0x76a54d92bf80caa0ULL, 0x00318481895d9627ULL}}, // 10^(-26) * 2^204
- {{0x921dd7a89933d54dULL, 0x00279d346de4781fULL}}, // 10^(-27) * 2^207
- {{0x8362f2a75b862214ULL, 0x003f61ed7ca0c032ULL}}, // 10^(-28) * 2^211
- {{0xcf825bb91604e810ULL, 0x0032b4bdfd4d668eULL}}, // 10^(-29) * 2^214
- {{0x0c684960de6a5340ULL, 0x00289097fdd7853fULL}}, // 10^(-30) * 2^217
- {{0x3d203ab3e521dc33ULL, 0x002073accb12d0ffULL}}, // 10^(-31) * 2^220
- {{0x2e99f7863b696052ULL, 0x0033ec47ab514e65ULL}}, // 10^(-32) * 2^224
- {{0x587b2c6b62bab375ULL, 0x002989d2ef743eb7ULL}}, // 10^(-33) * 2^227
- {{0xad2f56bc4efbc2c4ULL, 0x00213b0f25f69892ULL}}, // 10^(-34) * 2^230
+ {{0x28f5c28f5c28f5c2ULL, 0x028f5c28f5c28f5cULL}}, // 10^(-2) * 2^128
+ {{0x9db22d0e56041893ULL, 0x004189374bc6a7efULL}}, // 10^(-3) * 2^128
+ {{0x4af4f0d844d013a9ULL, 0x00346dc5d6388659ULL}}, // 10^(-4) * 2^131
+ {{0x08c3f3e0370cdc87ULL, 0x0029f16b11c6d1e1ULL}}, // 10^(-5) * 2^134
+ {{0x6d698fe69270b06cULL, 0x00218def416bdb1aULL}}, // 10^(-6) * 2^137
+ {{0xaf0f4ca41d811a46ULL, 0x0035afe535795e90ULL}}, // 10^(-7) * 2^141
+ {{0xbf3f70834acdae9fULL, 0x002af31dc4611873ULL}}, // 10^(-8) * 2^144
+ {{0x65cc5a02a23e254cULL, 0x00225c17d04dad29ULL}}, // 10^(-9) * 2^147
+ {{0x6fad5cd10396a213ULL, 0x0036f9bfb3af7b75ULL}}, // 10^(-10) * 2^151
+ {{0xbfbde3da69454e75ULL, 0x002bfaffc2f2c92aULL}}, // 10^(-11) * 2^154
+ {{0x32fe4fe1edd10b91ULL, 0x00232f33025bd422ULL}}, // 10^(-12) * 2^157
+ {{0x84ca19697c81ac1bULL, 0x00384b84d092ed03ULL}}, // 10^(-13) * 2^161
+ {{0x03d4e1213067bce3ULL, 0x002d09370d425736ULL}}, // 10^(-14) * 2^164
+ {{0x3643e74dc052fd82ULL, 0x0024075f3dceac2bULL}}, // 10^(-15) * 2^167
+ {{0x56d30baf9a1e626aULL, 0x0039a5652fb11378ULL}}, // 10^(-16) * 2^171
+ {{0x12426fbfae7eb521ULL, 0x002e1dea8c8da92dULL}}, // 10^(-17) * 2^174
+ {{0x41cebfcc8b9890e7ULL, 0x0024e4bba3a48757ULL}}, // 10^(-18) * 2^177
+ {{0x694acc7a78f41b0cULL, 0x003b07929f6da558ULL}}, // 10^(-19) * 2^181
+ {{0xbaa23d2ec729af3dULL, 0x002f394219248446ULL}}, // 10^(-20) * 2^184
+ {{0xfbb4fdbf05baf297ULL, 0x0025c768141d369eULL}}, // 10^(-21) * 2^187
+ {{0x2c54c931a2c4b758ULL, 0x003c7240202ebdcbULL}}, // 10^(-22) * 2^191
+ {{0x89dd6dc14f03c5e0ULL, 0x00305b66802564a2ULL}}, // 10^(-23) * 2^194
+ {{0xd4b1249aa59c9e4dULL, 0x0026af8533511d4eULL}}, // 10^(-24) * 2^197
+ {{0x544ea0f76f60fd48ULL, 0x003de5a1ebb4fbb1ULL}}, // 10^(-25) * 2^201
+ {{0x76a54d92bf80caa0ULL, 0x00318481895d9627ULL}}, // 10^(-26) * 2^204
+ {{0x921dd7a89933d54dULL, 0x00279d346de4781fULL}}, // 10^(-27) * 2^207
+ {{0x8362f2a75b862214ULL, 0x003f61ed7ca0c032ULL}}, // 10^(-28) * 2^211
+ {{0xcf825bb91604e810ULL, 0x0032b4bdfd4d668eULL}}, // 10^(-29) * 2^214
+ {{0x0c684960de6a5340ULL, 0x00289097fdd7853fULL}}, // 10^(-30) * 2^217
+ {{0x3d203ab3e521dc33ULL, 0x002073accb12d0ffULL}}, // 10^(-31) * 2^220
+ {{0x2e99f7863b696052ULL, 0x0033ec47ab514e65ULL}}, // 10^(-32) * 2^224
+ {{0x587b2c6b62bab375ULL, 0x002989d2ef743eb7ULL}}, // 10^(-33) * 2^227
+ {{0xad2f56bc4efbc2c4ULL, 0x00213b0f25f69892ULL}}, // 10^(-34) * 2^230
};
// ten2mk128M[k - 1] = 10^(-k) * 2^exp (k), where 1 <= k <= 4 and
@@ -1214,7 +1214,7 @@ UINT192 ten2mk192truncM[] = {
};
// shiftright192M[] contains the right shift count to obtain C2* from the top
-// 192 bits of the 192x192-bit product C2 * Kx if 0 <= ind <= 14 where ind is
+// 192 bits of the 192x192-bit product C2 * Kx if 0 <= ind <= 14 where ind is
// the index in the table, or from the top 128 bits if 15 <= ind <= 18
int shiftright192M[] = {
16, // 208 - 192
@@ -1345,7 +1345,7 @@ UINT256 ten2mk256truncM[] = { // the 64-bit word order is LL, LH, HL, HH
};
// shiftright256M[] contains the right shift count to obtain C2* from the top
-// 192 bits of the 256x256-bit product C2 * Kx
+// 192 bits of the 256x256-bit product C2 * Kx
int shiftright256M[] = {
15, // 335 - 320
19, // 339 - 320
@@ -1376,7 +1376,7 @@ UINT64 maskhigh256M[] = {
0x0000ffffffffffffULL // 48 = 368 - 320 bits
};
-// onehalf256M[] contains 1/2 positioned correctly for comparison with the
+// onehalf256M[] contains 1/2 positioned correctly for comparison with the
// high bits of f*; the high 128 bits of the 512-bit mask are 0
UINT64 onehalf256M[] = {
0x0000000000004000ULL, // 15 = 335 - 320 bits
@@ -3495,303 +3495,303 @@ UINT192 ten2mxtrunc192[] = {
UINT256 Kx256[] = {
{{0xcccccccccccccccdULL, 0xccccccccccccccccULL,
0xccccccccccccccccULL, 0xccccccccccccccccULL}},
- // 10^-1 ~= cccccccccccccccc cccccccccccccccc
+ // 10^-1 ~= cccccccccccccccc cccccccccccccccc
// cccccccccccccccccccccccccccccccd * 2^-259
{{0x70a3d70a3d70a3d8ULL, 0xd70a3d70a3d70a3dULL,
0x3d70a3d70a3d70a3ULL, 0xa3d70a3d70a3d70aULL}},
- // 10^-2 ~= a3d70a3d70a3d70a 3d70a3d70a3d70a3
+ // 10^-2 ~= a3d70a3d70a3d70a 3d70a3d70a3d70a3
// d70a3d70a3d70a3d70a3d70a3d70a3d8 * 2^-262
{{0xc083126e978d4fe0ULL, 0x78d4fdf3b645a1caULL,
0x645a1cac083126e9ULL, 0x83126e978d4fdf3bULL}},
- // 10^-3 ~= 83126e978d4fdf3b 645a1cac083126e9
+ // 10^-3 ~= 83126e978d4fdf3b 645a1cac083126e9
// 78d4fdf3b645a1cac083126e978d4fe0 * 2^-265
{{0x67381d7dbf487fccULL, 0xc154c985f06f6944ULL,
0xd3c36113404ea4a8ULL, 0xd1b71758e219652bULL}},
- // 10^-4 ~= d1b71758e219652b d3c36113404ea4a8
+ // 10^-4 ~= d1b71758e219652b d3c36113404ea4a8
// c154c985f06f694467381d7dbf487fcc * 2^-269
{{0x85c67dfe32a0663dULL, 0xcddd6e04c0592103ULL,
0x0fcf80dc33721d53ULL, 0xa7c5ac471b478423ULL}},
- // 10^-5 ~= a7c5ac471b478423 fcf80dc33721d53
+ // 10^-5 ~= a7c5ac471b478423 fcf80dc33721d53
// cddd6e04c059210385c67dfe32a0663d * 2^-272
{{0x37d1fe64f54d1e97ULL, 0xd7e45803cd141a69ULL,
0xa63f9a49c2c1b10fULL, 0x8637bd05af6c69b5ULL}},
- // 10^-6 ~= 8637bd05af6c69b5 a63f9a49c2c1b10f
+ // 10^-6 ~= 8637bd05af6c69b5 a63f9a49c2c1b10f
// d7e45803cd141a6937d1fe64f54d1e97 * 2^-275
{{0x8c8330a1887b6425ULL, 0x8ca08cd2e1b9c3dbULL,
0x3d32907604691b4cULL, 0xd6bf94d5e57a42bcULL}},
- // 10^-7 ~= d6bf94d5e57a42bc 3d32907604691b4c
+ // 10^-7 ~= d6bf94d5e57a42bc 3d32907604691b4c
// 8ca08cd2e1b9c3db8c8330a1887b6425 * 2^-279
{{0x7068f3b46d2f8351ULL, 0x3d4d3d758161697cULL,
0xfdc20d2b36ba7c3dULL, 0xabcc77118461cefcULL}},
- // 10^-8 ~= abcc77118461cefc fdc20d2b36ba7c3d
+ // 10^-8 ~= abcc77118461cefc fdc20d2b36ba7c3d
// 3d4d3d758161697c7068f3b46d2f8351 * 2^-282
{{0xf387295d242602a7ULL, 0xfdd7645e011abac9ULL,
0x31680a88f8953030ULL, 0x89705f4136b4a597ULL}},
- // 10^-9 ~= 89705f4136b4a597 31680a88f8953030
+ // 10^-9 ~= 89705f4136b4a597 31680a88f8953030
// fdd7645e011abac9f387295d242602a7 * 2^-285
{{0xb8d8422ea03cd10bULL, 0x2fbf06fcce912adcULL,
0xb573440e5a884d1bULL, 0xdbe6fecebdedd5beULL}},
- // 10^-10 ~= dbe6fecebdedd5be b573440e5a884d1b
+ // 10^-10 ~= dbe6fecebdedd5be b573440e5a884d1b
// 2fbf06fcce912adcb8d8422ea03cd10b * 2^-289
{{0x93e034f219ca40d6ULL, 0xf2ff38ca3eda88b0ULL,
0xf78f69a51539d748ULL, 0xafebff0bcb24aafeULL}},
- // 10^-11 ~= afebff0bcb24aafe f78f69a51539d748
+ // 10^-11 ~= afebff0bcb24aafe f78f69a51539d748
// f2ff38ca3eda88b093e034f219ca40d6 * 2^-292
{{0x4319c3f4e16e9a45ULL, 0xf598fa3b657ba08dULL,
0xf93f87b7442e45d3ULL, 0x8cbccc096f5088cbULL}},
- // 10^-12 ~= 8cbccc096f5088cb f93f87b7442e45d3
+ // 10^-12 ~= 8cbccc096f5088cb f93f87b7442e45d3
// f598fa3b657ba08d4319c3f4e16e9a45 * 2^-295
{{0x04f606549be42a07ULL, 0x88f4c3923bf900e2ULL,
0x2865a5f206b06fb9ULL, 0xe12e13424bb40e13ULL}},
- // 10^-13 ~= e12e13424bb40e13 2865a5f206b06fb9
+ // 10^-13 ~= e12e13424bb40e13 2865a5f206b06fb9
// 88f4c3923bf900e204f606549be42a07 * 2^-299
{{0x03f805107cb68806ULL, 0x6d909c74fcc733e8ULL,
0x538484c19ef38c94ULL, 0xb424dc35095cd80fULL}},
- // 10^-14 ~= b424dc35095cd80f 538484c19ef38c94
+ // 10^-14 ~= b424dc35095cd80f 538484c19ef38c94
// 6d909c74fcc733e803f805107cb68806 * 2^-302
{{0x3660040d3092066bULL, 0x57a6e390ca38f653ULL,
0x0f9d37014bf60a10ULL, 0x901d7cf73ab0acd9ULL}},
- // 10^-15 ~= 901d7cf73ab0acd9 f9d37014bf60a10
+ // 10^-15 ~= 901d7cf73ab0acd9 f9d37014bf60a10
// 57a6e390ca38f6533660040d3092066b * 2^-305
{{0x23ccd3484db670abULL, 0xbf716c1add27f085ULL,
0x4c2ebe687989a9b3ULL, 0xe69594bec44de15bULL}},
- // 10^-16 ~= e69594bec44de15b 4c2ebe687989a9b3
+ // 10^-16 ~= e69594bec44de15b 4c2ebe687989a9b3
// bf716c1add27f08523ccd3484db670ab * 2^-309
{{0x4fd70f6d0af85a23ULL, 0xff8df0157db98d37ULL,
0x09befeb9fad487c2ULL, 0xb877aa3236a4b449ULL}},
- // 10^-17 ~= b877aa3236a4b449 9befeb9fad487c2
+ // 10^-17 ~= b877aa3236a4b449 9befeb9fad487c2
// ff8df0157db98d374fd70f6d0af85a23 * 2^-312
{{0x0cac0c573bf9e1b6ULL, 0x32d7f344649470f9ULL,
0x3aff322e62439fcfULL, 0x9392ee8e921d5d07ULL}},
- // 10^-18 ~= 9392ee8e921d5d07 3aff322e62439fcf
+ // 10^-18 ~= 9392ee8e921d5d07 3aff322e62439fcf
// 32d7f344649470f90cac0c573bf9e1b6 * 2^-315
{{0xe11346f1f98fcf89ULL, 0x1e2652070753e7f4ULL,
0x2b31e9e3d06c32e5ULL, 0xec1e4a7db69561a5ULL}},
- // 10^-19 ~= ec1e4a7db69561a5 2b31e9e3d06c32e5
+ // 10^-19 ~= ec1e4a7db69561a5 2b31e9e3d06c32e5
// 1e2652070753e7f4e11346f1f98fcf89 * 2^-319
{{0x4da9058e613fd93aULL, 0x181ea8059f76532aULL,
0x88f4bb1ca6bcf584ULL, 0xbce5086492111aeaULL}},
- // 10^-20 ~= bce5086492111aea 88f4bb1ca6bcf584
+ // 10^-20 ~= bce5086492111aea 88f4bb1ca6bcf584
// 181ea8059f76532a4da9058e613fd93a * 2^-322
{{0xa48737a51a997a95ULL, 0x467eecd14c5ea8eeULL,
0xd3f6fc16ebca5e03ULL, 0x971da05074da7beeULL}},
- // 10^-21 ~= 971da05074da7bee d3f6fc16ebca5e03
+ // 10^-21 ~= 971da05074da7bee d3f6fc16ebca5e03
// 467eecd14c5ea8eea48737a51a997a95 * 2^-325
{{0x3a71f2a1c428c421ULL, 0x70cb148213caa7e4ULL,
0x5324c68b12dd6338ULL, 0xf1c90080baf72cb1ULL}},
- // 10^-22 ~= f1c90080baf72cb1 5324c68b12dd6338
+ // 10^-22 ~= f1c90080baf72cb1 5324c68b12dd6338
// 70cb148213caa7e43a71f2a1c428c421 * 2^-329
{{0x2ec18ee7d0209ce8ULL, 0x8d6f439b43088650ULL,
0x75b7053c0f178293ULL, 0xc16d9a0095928a27ULL}},
- // 10^-23 ~= c16d9a0095928a27 75b7053c0f178293
+ // 10^-23 ~= c16d9a0095928a27 75b7053c0f178293
// 8d6f439b430886502ec18ee7d0209ce8 * 2^-332
{{0xf23472530ce6e3edULL, 0xd78c3615cf3a050cULL,
0xc4926a9672793542ULL, 0x9abe14cd44753b52ULL}},
- // 10^-24 ~= 9abe14cd44753b52 c4926a9672793542
+ // 10^-24 ~= 9abe14cd44753b52 c4926a9672793542
// d78c3615cf3a050cf23472530ce6e3ed * 2^-335
{{0xe9ed83b814a49fe1ULL, 0x8c1389bc7ec33b47ULL,
0x3a83ddbd83f52204ULL, 0xf79687aed3eec551ULL}},
- // 10^-25 ~= f79687aed3eec551 3a83ddbd83f52204
+ // 10^-25 ~= f79687aed3eec551 3a83ddbd83f52204
// 8c1389bc7ec33b47e9ed83b814a49fe1 * 2^-339
{{0x87f1362cdd507fe7ULL, 0x3cdc6e306568fc39ULL,
0x95364afe032a819dULL, 0xc612062576589ddaULL}},
- // 10^-26 ~= c612062576589dda 95364afe032a819d
+ // 10^-26 ~= c612062576589dda 95364afe032a819d
// 3cdc6e306568fc3987f1362cdd507fe7 * 2^-342
{{0x9ff42b5717739986ULL, 0xca49f1c05120c9c7ULL,
0x775ea264cf55347dULL, 0x9e74d1b791e07e48ULL}},
- // 10^-27 ~= 9e74d1b791e07e48 775ea264cf55347d
+ // 10^-27 ~= 9e74d1b791e07e48 775ea264cf55347d
// ca49f1c05120c9c79ff42b5717739986 * 2^-345
{{0xccb9def1bf1f5c09ULL, 0x76dcb60081ce0fa5ULL,
0x8bca9d6e188853fcULL, 0xfd87b5f28300ca0dULL}},
- // 10^-28 ~= fd87b5f28300ca0d 8bca9d6e188853fc
+ // 10^-28 ~= fd87b5f28300ca0d 8bca9d6e188853fc
// 76dcb60081ce0fa5ccb9def1bf1f5c09 * 2^-349
{{0xa3c7e58e327f7cd4ULL, 0x5f16f80067d80c84ULL,
0x096ee45813a04330ULL, 0xcad2f7f5359a3b3eULL}},
- // 10^-29 ~= cad2f7f5359a3b3e 96ee45813a04330
+ // 10^-29 ~= cad2f7f5359a3b3e 96ee45813a04330
// 5f16f80067d80c84a3c7e58e327f7cd4 * 2^-352
{{0xb6398471c1ff9710ULL, 0x18df2ccd1fe00a03ULL,
0xa1258379a94d028dULL, 0xa2425ff75e14fc31ULL}},
- // 10^-30 ~= a2425ff75e14fc31 a1258379a94d028d
+ // 10^-30 ~= a2425ff75e14fc31 a1258379a94d028d
// 18df2ccd1fe00a03b6398471c1ff9710 * 2^-355
{{0xf82e038e34cc78daULL, 0x4718f0a419800802ULL,
0x80eacf948770ced7ULL, 0x81ceb32c4b43fcf4ULL}},
- // 10^-31 ~= 81ceb32c4b43fcf4 80eacf948770ced7
+ // 10^-31 ~= 81ceb32c4b43fcf4 80eacf948770ced7
// 4718f0a419800802f82e038e34cc78da * 2^-358
{{0x59e338e387ad8e29ULL, 0x0b5b1aa028ccd99eULL,
0x67de18eda5814af2ULL, 0xcfb11ead453994baULL}},
- // 10^-32 ~= cfb11ead453994ba 67de18eda5814af2
+ // 10^-32 ~= cfb11ead453994ba 67de18eda5814af2
// b5b1aa028ccd99e59e338e387ad8e29 * 2^-362
{{0x47e8fa4f9fbe0b54ULL, 0x6f7c154ced70ae18ULL,
0xecb1ad8aeacdd58eULL, 0xa6274bbdd0fadd61ULL}},
- // 10^-33 ~= a6274bbdd0fadd61 ecb1ad8aeacdd58e
+ // 10^-33 ~= a6274bbdd0fadd61 ecb1ad8aeacdd58e
// 6f7c154ced70ae1847e8fa4f9fbe0b54 * 2^-365
{{0xd320c83fb2fe6f76ULL, 0xbf967770bdf3be79ULL,
0xbd5af13bef0b113eULL, 0x84ec3c97da624ab4ULL}},
- // 10^-34 ~= 84ec3c97da624ab4 bd5af13bef0b113e
+ // 10^-34 ~= 84ec3c97da624ab4 bd5af13bef0b113e
// bf967770bdf3be79d320c83fb2fe6f76 * 2^-368
{{0x85014065eb30b257ULL, 0x65bd8be79652ca5cULL,
0x955e4ec64b44e864ULL, 0xd4ad2dbfc3d07787ULL}},
- // 10^-35 ~= d4ad2dbfc3d07787 955e4ec64b44e864
+ // 10^-35 ~= d4ad2dbfc3d07787 955e4ec64b44e864
// 65bd8be79652ca5c85014065eb30b257 * 2^-372
{{0xd0cdcd1e55c08eacULL, 0xeafe098611dbd516ULL,
0xdde50bd1d5d0b9e9ULL, 0xaa242499697392d2ULL}},
- // 10^-36 ~= aa242499697392d2 dde50bd1d5d0b9e9
+ // 10^-36 ~= aa242499697392d2 dde50bd1d5d0b9e9
// eafe098611dbd516d0cdcd1e55c08eac * 2^-375
{{0x40a4a418449a0bbdULL, 0xbbfe6e04db164412ULL,
0x7e50d64177da2e54ULL, 0x881cea14545c7575ULL}},
- // 10^-37 ~= 881cea14545c7575 7e50d64177da2e54
+ // 10^-37 ~= 881cea14545c7575 7e50d64177da2e54
// bbfe6e04db16441240a4a418449a0bbd * 2^-378
{{0x9aa1068d3a9012c8ULL, 0x2cca49a15e8a0683ULL,
0x96e7bd358c904a21ULL, 0xd9c7dced53c72255ULL}},
- // 10^-38 ~= d9c7dced53c72255 96e7bd358c904a21
+ // 10^-38 ~= d9c7dced53c72255 96e7bd358c904a21
// 2cca49a15e8a06839aa1068d3a9012c8 * 2^-382
{{0x154d9ed7620cdbd3ULL, 0x8a3b6e1ab2080536ULL,
0xabec975e0a0d081aULL, 0xae397d8aa96c1b77ULL}},
- // 10^-39 ~= ae397d8aa96c1b77 abec975e0a0d081a
+ // 10^-39 ~= ae397d8aa96c1b77 abec975e0a0d081a
// 8a3b6e1ab2080536154d9ed7620cdbd3 * 2^-385
{{0x443e18ac4e70afdcULL, 0x3b62be7bc1a0042bULL,
0x2323ac4b3b3da015ULL, 0x8b61313bbabce2c6ULL}},
- // 10^-40 ~= 8b61313bbabce2c6 2323ac4b3b3da015
+ // 10^-40 ~= 8b61313bbabce2c6 2323ac4b3b3da015
// 3b62be7bc1a0042b443e18ac4e70afdc * 2^-388
{{0x6d30277a171ab2f9ULL, 0x5f0463f935ccd378ULL,
0x6b6c46dec52f6688ULL, 0xdf01e85f912e37a3ULL}},
- // 10^-41 ~= df01e85f912e37a3 6b6c46dec52f6688
+ // 10^-41 ~= df01e85f912e37a3 6b6c46dec52f6688
// 5f0463f935ccd3786d30277a171ab2f9 * 2^-392
{{0x8a8cec61ac155bfbULL, 0x7f36b660f7d70f93ULL,
0x55f038b237591ed3ULL, 0xb267ed1940f1c61cULL}},
- // 10^-42 ~= b267ed1940f1c61c 55f038b237591ed3
+ // 10^-42 ~= b267ed1940f1c61c 55f038b237591ed3
// 7f36b660f7d70f938a8cec61ac155bfb * 2^-395
{{0x3ba3f04e23444996ULL, 0xcc2bc51a5fdf3fa9ULL,
0x77f3608e92adb242ULL, 0x8eb98a7a9a5b04e3ULL}},
- // 10^-43 ~= 8eb98a7a9a5b04e3 77f3608e92adb242
+ // 10^-43 ~= 8eb98a7a9a5b04e3 77f3608e92adb242
// cc2bc51a5fdf3fa93ba3f04e23444996 * 2^-398
{{0xf9064d49d206dc22ULL, 0xe046082a32fecc41ULL,
0x8cb89a7db77c506aULL, 0xe45c10c42a2b3b05ULL}},
- // 10^-44 ~= e45c10c42a2b3b05 8cb89a7db77c506a
+ // 10^-44 ~= e45c10c42a2b3b05 8cb89a7db77c506a
// e046082a32fecc41f9064d49d206dc22 * 2^-402
{{0xfa6b7107db38b01bULL, 0x4d04d354f598a367ULL,
0x3d607b97c5fd0d22ULL, 0xb6b00d69bb55c8d1ULL}},
- // 10^-45 ~= b6b00d69bb55c8d1 3d607b97c5fd0d22
+ // 10^-45 ~= b6b00d69bb55c8d1 3d607b97c5fd0d22
// 4d04d354f598a367fa6b7107db38b01b * 2^-405
{{0xfb8927397c2d59b0ULL, 0x3d9d75dd9146e91fULL,
0xcab3961304ca70e8ULL, 0x9226712162ab070dULL}},
- // 10^-46 ~= 9226712162ab070d cab3961304ca70e8
+ // 10^-46 ~= 9226712162ab070d cab3961304ca70e8
// 3d9d75dd9146e91ffb8927397c2d59b0 * 2^-408
{{0xf8db71f5937bc2b2ULL, 0xc8fbefc8e87174ffULL,
0xaab8f01e6e10b4a6ULL, 0xe9d71b689dde71afULL}},
- // 10^-47 ~= e9d71b689dde71af aab8f01e6e10b4a6
+ // 10^-47 ~= e9d71b689dde71af aab8f01e6e10b4a6
// c8fbefc8e87174fff8db71f5937bc2b2 * 2^-412
{{0x2d7c5b2adc630228ULL, 0x3a63263a538df733ULL,
0x5560c018580d5d52ULL, 0xbb127c53b17ec159ULL}},
- // 10^-48 ~= bb127c53b17ec159 5560c018580d5d52
+ // 10^-48 ~= bb127c53b17ec159 5560c018580d5d52
// 3a63263a538df7332d7c5b2adc630228 * 2^-415
{{0x24637c2249e8ce87ULL, 0x2eb5b82ea93e5f5cULL,
0xdde7001379a44aa8ULL, 0x95a8637627989aadULL}},
- // 10^-49 ~= 95a8637627989aad dde7001379a44aa8
+ // 10^-49 ~= 95a8637627989aad dde7001379a44aa8
// 2eb5b82ea93e5f5c24637c2249e8ce87 * 2^-418
{{0x3a38c69d430e173eULL, 0x4abc59e441fd6560ULL,
0x963e66858f6d4440ULL, 0xef73d256a5c0f77cULL}},
- // 10^-50 ~= ef73d256a5c0f77c 963e66858f6d4440
+ // 10^-50 ~= ef73d256a5c0f77c 963e66858f6d4440
// 4abc59e441fd65603a38c69d430e173e * 2^-422
{{0x94fa387dcf3e78feULL, 0x6efd14b69b311de6ULL,
0xde98520472bdd033ULL, 0xbf8fdb78849a5f96ULL}},
- // 10^-51 ~= bf8fdb78849a5f96 de98520472bdd033
+ // 10^-51 ~= bf8fdb78849a5f96 de98520472bdd033
// 6efd14b69b311de694fa387dcf3e78fe * 2^-425
{{0xaa61c6cb0c31fa65ULL, 0x259743c548f417ebULL,
0xe546a8038efe4029ULL, 0x993fe2c6d07b7fabULL}},
- // 10^-52 ~= 993fe2c6d07b7fab e546a8038efe4029
+ // 10^-52 ~= 993fe2c6d07b7fab e546a8038efe4029
// 259743c548f417ebaa61c6cb0c31fa65 * 2^-428
{{0xaa360ade79e990a2ULL, 0x3c25393ba7ecf312ULL,
0xd53dd99f4b3066a8ULL, 0xf53304714d9265dfULL}},
- // 10^-53 ~= f53304714d9265df d53dd99f4b3066a8
+ // 10^-53 ~= f53304714d9265df d53dd99f4b3066a8
// 3c25393ba7ecf312aa360ade79e990a2 * 2^-432
{{0x882b3be52e5473b5ULL, 0x96842dc95323f5a8ULL,
0xaa97e14c3c26b886ULL, 0xc428d05aa4751e4cULL}},
- // 10^-54 ~= c428d05aa4751e4c aa97e14c3c26b886
+ // 10^-54 ~= c428d05aa4751e4c aa97e14c3c26b886
// 96842dc95323f5a8882b3be52e5473b5 * 2^-435
{{0xd355c98425105c91ULL, 0xab9cf16ddc1cc486ULL,
0x55464dd69685606bULL, 0x9ced737bb6c4183dULL}},
- // 10^-55 ~= 9ced737bb6c4183d 55464dd69685606b
+ // 10^-55 ~= 9ced737bb6c4183d 55464dd69685606b
// ab9cf16ddc1cc486d355c98425105c91 * 2^-438
{{0xebbc75a03b4d60e7ULL, 0xac2e4f162cfad40aULL,
0xeed6e2f0f0d56712ULL, 0xfb158592be068d2eULL}},
- // 10^-56 ~= fb158592be068d2e eed6e2f0f0d56712
+ // 10^-56 ~= fb158592be068d2e eed6e2f0f0d56712
// ac2e4f162cfad40aebbc75a03b4d60e7 * 2^-442
{{0x8963914cfc3de71fULL, 0x568b727823fbdcd5ULL,
0xf245825a5a445275ULL, 0xc8de047564d20a8bULL}},
- // 10^-57 ~= c8de047564d20a8b f245825a5a445275
+ // 10^-57 ~= c8de047564d20a8b f245825a5a445275
// 568b727823fbdcd58963914cfc3de71f * 2^-445
{{0xd44fa770c9cb1f4cULL, 0x453c5b934ffcb0aaULL,
0x5b6aceaeae9d0ec4ULL, 0xa0b19d2ab70e6ed6ULL}},
- // 10^-58 ~= a0b19d2ab70e6ed6 5b6aceaeae9d0ec4
+ // 10^-58 ~= a0b19d2ab70e6ed6 5b6aceaeae9d0ec4
// 453c5b934ffcb0aad44fa770c9cb1f4c * 2^-448
{{0xdd0c85f3d4a27f70ULL, 0x37637c75d996f3bbULL,
0xe2bbd88bbee40bd0ULL, 0x808e17555f3ebf11ULL}},
- // 10^-59 ~= 808e17555f3ebf11 e2bbd88bbee40bd0
+ // 10^-59 ~= 808e17555f3ebf11 e2bbd88bbee40bd0
// 37637c75d996f3bbdd0c85f3d4a27f70 * 2^-451
{{0x61ada31fba9d98b3ULL, 0x256bfa5628f185f9ULL,
0x3792f412cb06794dULL, 0xcdb02555653131b6ULL}},
- // 10^-60 ~= cdb02555653131b6 3792f412cb06794d
+ // 10^-60 ~= cdb02555653131b6 3792f412cb06794d
// 256bfa5628f185f961ada31fba9d98b3 * 2^-455
{{0xe7be1c196217ad5cULL, 0x51232eab53f46b2dULL,
0x5fa8c3423c052dd7ULL, 0xa48ceaaab75a8e2bULL}},
- // 10^-61 ~= a48ceaaab75a8e2b 5fa8c3423c052dd7
+ // 10^-61 ~= a48ceaaab75a8e2b 5fa8c3423c052dd7
// 51232eab53f46b2de7be1c196217ad5c * 2^-458
{{0x52fe7ce11b46244aULL, 0x40e8f222a99055beULL,
0x1953cf68300424acULL, 0x83a3eeeef9153e89ULL}},
- // 10^-62 ~= 83a3eeeef9153e89 1953cf68300424ac
+ // 10^-62 ~= 83a3eeeef9153e89 1953cf68300424ac
// 40e8f222a99055be52fe7ce11b46244a * 2^-461
{{0x51972e34f8703a10ULL, 0x34a7e9d10f4d55fdULL,
0x8eec7f0d19a03aadULL, 0xd29fe4b18e88640eULL}},
- // 10^-63 ~= d29fe4b18e88640e 8eec7f0d19a03aad
+ // 10^-63 ~= d29fe4b18e88640e 8eec7f0d19a03aad
// 34a7e9d10f4d55fd51972e34f8703a10 * 2^-465
{{0x0e128b5d938cfb40ULL, 0x2a1fee40d90aab31ULL,
0x3f2398d747b36224ULL, 0xa87fea27a539e9a5ULL}},
- // 10^-64 ~= a87fea27a539e9a5 3f2398d747b36224
+ // 10^-64 ~= a87fea27a539e9a5 3f2398d747b36224
// 2a1fee40d90aab310e128b5d938cfb40 * 2^-468
{{0x3e753c4adc70c900ULL, 0xbb4cbe9a473bbc27ULL,
0x98e947129fc2b4e9ULL, 0x86ccbb52ea94baeaULL}},
- // 10^-65 ~= 86ccbb52ea94baea 98e947129fc2b4e9
+ // 10^-65 ~= 86ccbb52ea94baea 98e947129fc2b4e9
// bb4cbe9a473bbc273e753c4adc70c900 * 2^-471
{{0x30bb93aafa4e0e66ULL, 0x9214642a0b92c6a5ULL,
0x5b0ed81dcc6abb0fULL, 0xd7adf884aa879177ULL}},
- // 10^-66 ~= d7adf884aa879177 5b0ed81dcc6abb0f
+ // 10^-66 ~= d7adf884aa879177 5b0ed81dcc6abb0f
// 9214642a0b92c6a530bb93aafa4e0e66 * 2^-475
{{0xc0960fbbfb71a51fULL, 0xa8105021a2dbd21dULL,
0xe272467e3d222f3fULL, 0xac8b2d36eed2dac5ULL}},
- // 10^-67 ~= ac8b2d36eed2dac5 e272467e3d222f3f
+ // 10^-67 ~= ac8b2d36eed2dac5 e272467e3d222f3f
// a8105021a2dbd21dc0960fbbfb71a51f * 2^-478
{{0x66de72fcc927b74cULL, 0xb9a6a6814f1641b1ULL,
0x1b8e9ecb641b58ffULL, 0x8a08f0f8bf0f156bULL}},
- // 10^-68 ~= 8a08f0f8bf0f156b 1b8e9ecb641b58ff
+ // 10^-68 ~= 8a08f0f8bf0f156b 1b8e9ecb641b58ff
// b9a6a6814f1641b166de72fcc927b74c * 2^-481
{{0xd7ca5194750c5879ULL, 0xf5d770cee4f0691bULL,
0xf8e431456cf88e65ULL, 0xdcdb1b2798182244ULL}},
- // 10^-69 ~= dcdb1b2798182244 f8e431456cf88e65
+ // 10^-69 ~= dcdb1b2798182244 f8e431456cf88e65
// f5d770cee4f0691bd7ca5194750c5879 * 2^-485
{{0xdfd50e105da379faULL, 0x9179270bea59edafULL,
0x2d835a9df0c6d851ULL, 0xb0af48ec79ace837ULL}},
- // 10^-70 ~= b0af48ec79ace837 2d835a9df0c6d851
+ // 10^-70 ~= b0af48ec79ace837 2d835a9df0c6d851
// 9179270bea59edafdfd50e105da379fa * 2^-488
{{0x19773e737e1c6195ULL, 0x0dfa85a321e18af3ULL,
0x579c487e5a38ad0eULL, 0x8d590723948a535fULL}},
- // 10^-71 ~= 8d590723948a535f 579c487e5a38ad0e
+ // 10^-71 ~= 8d590723948a535f 579c487e5a38ad0e
// dfa85a321e18af319773e737e1c6195 * 2^-491
{{0xf58b971f302d68efULL, 0x165da29e9c9c1184ULL,
0x25c6da63c38de1b0ULL, 0xe2280b6c20dd5232ULL}},
- // 10^-72 ~= e2280b6c20dd5232 25c6da63c38de1b0
+ // 10^-72 ~= e2280b6c20dd5232 25c6da63c38de1b0
// 165da29e9c9c1184f58b971f302d68ef * 2^-495
{{0xc46fac18f3578725ULL, 0x4517b54bb07cdad0ULL,
0x1e38aeb6360b1af3ULL, 0xb4ecd5f01a4aa828ULL}},
- // 10^-73 ~= b4ecd5f01a4aa828 1e38aeb6360b1af3
+ // 10^-73 ~= b4ecd5f01a4aa828 1e38aeb6360b1af3
// 4517b54bb07cdad0c46fac18f3578725 * 2^-498
{{0x36bfbce0c2ac6c1eULL, 0x9dac910959fd7bdaULL,
0xb1c6f22b5e6f48c2ULL, 0x90bd77f3483bb9b9ULL}},
- // 10^-74 ~= 90bd77f3483bb9b9 b1c6f22b5e6f48c2
+ // 10^-74 ~= 90bd77f3483bb9b9 b1c6f22b5e6f48c2
// 9dac910959fd7bda36bfbce0c2ac6c1e * 2^-501
{{0x2465fb01377a4696ULL, 0x2f7a81a88ffbf95dULL,
0xb60b1d1230b20e04ULL, 0xe7958cb87392c2c2ULL}}
- // 10^-75 ~= e7958cb87392c2c2 b60b1d1230b20e04
+ // 10^-75 ~= e7958cb87392c2c2 b60b1d1230b20e04
// 2f7a81a88ffbf95d2465fb01377a4696 * 2^-505
};
@@ -4032,302 +4032,302 @@ UINT64 mask256[] = {
UINT256 ten2mxtrunc256[] = {
{{0xccccccccccccccccULL, 0xccccccccccccccccULL,
0xccccccccccccccccULL, 0xccccccccccccccccULL}},
- // (ten2mx >> 256) = cccccccccccccccc cccccccccccccccc
+ // (ten2mx >> 256) = cccccccccccccccc cccccccccccccccc
// cccccccccccccccccccccccccccccccc
{{0x70a3d70a3d70a3d7ULL, 0xd70a3d70a3d70a3dULL,
0x3d70a3d70a3d70a3ULL, 0xa3d70a3d70a3d70aULL}},
- // (ten2mx >> 256) = a3d70a3d70a3d70a 3d70a3d70a3d70a3
+ // (ten2mx >> 256) = a3d70a3d70a3d70a 3d70a3d70a3d70a3
// d70a3d70a3d70a3d70a3d70a3d70a3d7
{{0xc083126e978d4fdfULL, 0x78d4fdf3b645a1caULL,
0x645a1cac083126e9ULL, 0x83126e978d4fdf3bULL}},
- // (ten2mx >> 256) = 83126e978d4fdf3b 645a1cac083126e9
+ // (ten2mx >> 256) = 83126e978d4fdf3b 645a1cac083126e9
// 78d4fdf3b645a1cac083126e978d4fdf
{{0x67381d7dbf487fcbULL, 0xc154c985f06f6944ULL,
0xd3c36113404ea4a8ULL, 0xd1b71758e219652bULL}},
- // (ten2mx >> 256) = d1b71758e219652b d3c36113404ea4a8
+ // (ten2mx >> 256) = d1b71758e219652b d3c36113404ea4a8
// c154c985f06f694467381d7dbf487fcb
{{0x85c67dfe32a0663cULL, 0xcddd6e04c0592103ULL,
0x0fcf80dc33721d53ULL, 0xa7c5ac471b478423ULL}},
- // (ten2mx >> 256) = a7c5ac471b478423 fcf80dc33721d53
+ // (ten2mx >> 256) = a7c5ac471b478423 fcf80dc33721d53
// cddd6e04c059210385c67dfe32a0663c
{{0x37d1fe64f54d1e96ULL, 0xd7e45803cd141a69ULL,
0xa63f9a49c2c1b10fULL, 0x8637bd05af6c69b5ULL}},
- // (ten2mx >> 256) = 8637bd05af6c69b5 a63f9a49c2c1b10f
+ // (ten2mx >> 256) = 8637bd05af6c69b5 a63f9a49c2c1b10f
// d7e45803cd141a6937d1fe64f54d1e96
{{0x8c8330a1887b6424ULL, 0x8ca08cd2e1b9c3dbULL,
0x3d32907604691b4cULL, 0xd6bf94d5e57a42bcULL}},
- // (ten2mx >> 256) = d6bf94d5e57a42bc 3d32907604691b4c
+ // (ten2mx >> 256) = d6bf94d5e57a42bc 3d32907604691b4c
// 8ca08cd2e1b9c3db8c8330a1887b6424
{{0x7068f3b46d2f8350ULL, 0x3d4d3d758161697cULL,
0xfdc20d2b36ba7c3dULL, 0xabcc77118461cefcULL}},
- // (ten2mx >> 256) = abcc77118461cefc fdc20d2b36ba7c3d
+ // (ten2mx >> 256) = abcc77118461cefc fdc20d2b36ba7c3d
// 3d4d3d758161697c7068f3b46d2f8350
{{0xf387295d242602a6ULL, 0xfdd7645e011abac9ULL,
0x31680a88f8953030ULL, 0x89705f4136b4a597ULL}},
- // (ten2mx >> 256) = 89705f4136b4a597 31680a88f8953030
+ // (ten2mx >> 256) = 89705f4136b4a597 31680a88f8953030
// fdd7645e011abac9f387295d242602a6
{{0xb8d8422ea03cd10aULL, 0x2fbf06fcce912adcULL,
0xb573440e5a884d1bULL, 0xdbe6fecebdedd5beULL}},
- // (ten2mx >> 256) = dbe6fecebdedd5be b573440e5a884d1b
+ // (ten2mx >> 256) = dbe6fecebdedd5be b573440e5a884d1b
// 2fbf06fcce912adcb8d8422ea03cd10a
{{0x93e034f219ca40d5ULL, 0xf2ff38ca3eda88b0ULL,
0xf78f69a51539d748ULL, 0xafebff0bcb24aafeULL}},
- // (ten2mx >> 256) = afebff0bcb24aafe f78f69a51539d748
+ // (ten2mx >> 256) = afebff0bcb24aafe f78f69a51539d748
// f2ff38ca3eda88b093e034f219ca40d5
{{0x4319c3f4e16e9a44ULL, 0xf598fa3b657ba08dULL,
0xf93f87b7442e45d3ULL, 0x8cbccc096f5088cbULL}},
- // (ten2mx >> 256) = 8cbccc096f5088cb f93f87b7442e45d3
+ // (ten2mx >> 256) = 8cbccc096f5088cb f93f87b7442e45d3
// f598fa3b657ba08d4319c3f4e16e9a44
{{0x04f606549be42a06ULL, 0x88f4c3923bf900e2ULL,
0x2865a5f206b06fb9ULL, 0xe12e13424bb40e13ULL}},
- // (ten2mx >> 256) = e12e13424bb40e13 2865a5f206b06fb9
+ // (ten2mx >> 256) = e12e13424bb40e13 2865a5f206b06fb9
// 88f4c3923bf900e204f606549be42a06
{{0x03f805107cb68805ULL, 0x6d909c74fcc733e8ULL,
0x538484c19ef38c94ULL, 0xb424dc35095cd80fULL}},
- // (ten2mx >> 256) = b424dc35095cd80f 538484c19ef38c94
+ // (ten2mx >> 256) = b424dc35095cd80f 538484c19ef38c94
// 6d909c74fcc733e803f805107cb68805
{{0x3660040d3092066aULL, 0x57a6e390ca38f653ULL,
0x0f9d37014bf60a10ULL, 0x901d7cf73ab0acd9ULL}},
- // (ten2mx >> 256) = 901d7cf73ab0acd9 f9d37014bf60a10
+ // (ten2mx >> 256) = 901d7cf73ab0acd9 f9d37014bf60a10
// 57a6e390ca38f6533660040d3092066a
{{0x23ccd3484db670aaULL, 0xbf716c1add27f085ULL,
0x4c2ebe687989a9b3ULL, 0xe69594bec44de15bULL}},
- // (ten2mx >> 256) = e69594bec44de15b 4c2ebe687989a9b3
+ // (ten2mx >> 256) = e69594bec44de15b 4c2ebe687989a9b3
// bf716c1add27f08523ccd3484db670aa
{{0x4fd70f6d0af85a22ULL, 0xff8df0157db98d37ULL,
0x09befeb9fad487c2ULL, 0xb877aa3236a4b449ULL}},
- // (ten2mx >> 256) = b877aa3236a4b449 9befeb9fad487c2
+ // (ten2mx >> 256) = b877aa3236a4b449 9befeb9fad487c2
// ff8df0157db98d374fd70f6d0af85a22
{{0x0cac0c573bf9e1b5ULL, 0x32d7f344649470f9ULL,
0x3aff322e62439fcfULL, 0x9392ee8e921d5d07ULL}},
- // (ten2mx >> 256) = 9392ee8e921d5d07 3aff322e62439fcf
+ // (ten2mx >> 256) = 9392ee8e921d5d07 3aff322e62439fcf
// 32d7f344649470f90cac0c573bf9e1b5
{{0xe11346f1f98fcf88ULL, 0x1e2652070753e7f4ULL,
0x2b31e9e3d06c32e5ULL, 0xec1e4a7db69561a5ULL}},
- // (ten2mx >> 256) = ec1e4a7db69561a5 2b31e9e3d06c32e5
+ // (ten2mx >> 256) = ec1e4a7db69561a5 2b31e9e3d06c32e5
// 1e2652070753e7f4e11346f1f98fcf88
{{0x4da9058e613fd939ULL, 0x181ea8059f76532aULL,
0x88f4bb1ca6bcf584ULL, 0xbce5086492111aeaULL}},
- // (ten2mx >> 256) = bce5086492111aea 88f4bb1ca6bcf584
+ // (ten2mx >> 256) = bce5086492111aea 88f4bb1ca6bcf584
// 181ea8059f76532a4da9058e613fd939
{{0xa48737a51a997a94ULL, 0x467eecd14c5ea8eeULL,
0xd3f6fc16ebca5e03ULL, 0x971da05074da7beeULL}},
- // (ten2mx >> 256) = 971da05074da7bee d3f6fc16ebca5e03
+ // (ten2mx >> 256) = 971da05074da7bee d3f6fc16ebca5e03
// 467eecd14c5ea8eea48737a51a997a94
{{0x3a71f2a1c428c420ULL, 0x70cb148213caa7e4ULL,
0x5324c68b12dd6338ULL, 0xf1c90080baf72cb1ULL}},
- // (ten2mx >> 256) = f1c90080baf72cb1 5324c68b12dd6338
+ // (ten2mx >> 256) = f1c90080baf72cb1 5324c68b12dd6338
// 70cb148213caa7e43a71f2a1c428c420
{{0x2ec18ee7d0209ce7ULL, 0x8d6f439b43088650ULL,
0x75b7053c0f178293ULL, 0xc16d9a0095928a27ULL}},
- // (ten2mx >> 256) = c16d9a0095928a27 75b7053c0f178293
+ // (ten2mx >> 256) = c16d9a0095928a27 75b7053c0f178293
// 8d6f439b430886502ec18ee7d0209ce7
{{0xf23472530ce6e3ecULL, 0xd78c3615cf3a050cULL,
0xc4926a9672793542ULL, 0x9abe14cd44753b52ULL}},
- // (ten2mx >> 256) = 9abe14cd44753b52 c4926a9672793542
+ // (ten2mx >> 256) = 9abe14cd44753b52 c4926a9672793542
// d78c3615cf3a050cf23472530ce6e3ec
{{0xe9ed83b814a49fe0ULL, 0x8c1389bc7ec33b47ULL,
0x3a83ddbd83f52204ULL, 0xf79687aed3eec551ULL}},
- // (ten2mx >> 256) = f79687aed3eec551 3a83ddbd83f52204
+ // (ten2mx >> 256) = f79687aed3eec551 3a83ddbd83f52204
// 8c1389bc7ec33b47e9ed83b814a49fe0
{{0x87f1362cdd507fe6ULL, 0x3cdc6e306568fc39ULL,
0x95364afe032a819dULL, 0xc612062576589ddaULL}},
- // (ten2mx >> 256) = c612062576589dda 95364afe032a819d
+ // (ten2mx >> 256) = c612062576589dda 95364afe032a819d
// 3cdc6e306568fc3987f1362cdd507fe6
{{0x9ff42b5717739985ULL, 0xca49f1c05120c9c7ULL,
0x775ea264cf55347dULL, 0x9e74d1b791e07e48ULL}},
- // (ten2mx >> 256) = 9e74d1b791e07e48 775ea264cf55347d
+ // (ten2mx >> 256) = 9e74d1b791e07e48 775ea264cf55347d
// ca49f1c05120c9c79ff42b5717739985
{{0xccb9def1bf1f5c08ULL, 0x76dcb60081ce0fa5ULL,
0x8bca9d6e188853fcULL, 0xfd87b5f28300ca0dULL}},
- // (ten2mx >> 256) = fd87b5f28300ca0d 8bca9d6e188853fc
+ // (ten2mx >> 256) = fd87b5f28300ca0d 8bca9d6e188853fc
// 76dcb60081ce0fa5ccb9def1bf1f5c08
{{0xa3c7e58e327f7cd3ULL, 0x5f16f80067d80c84ULL,
0x096ee45813a04330ULL, 0xcad2f7f5359a3b3eULL}},
- // (ten2mx >> 256) = cad2f7f5359a3b3e 96ee45813a04330
+ // (ten2mx >> 256) = cad2f7f5359a3b3e 96ee45813a04330
// 5f16f80067d80c84a3c7e58e327f7cd3
{{0xb6398471c1ff970fULL, 0x18df2ccd1fe00a03ULL,
0xa1258379a94d028dULL, 0xa2425ff75e14fc31ULL}},
- // (ten2mx >> 256) = a2425ff75e14fc31 a1258379a94d028d
+ // (ten2mx >> 256) = a2425ff75e14fc31 a1258379a94d028d
// 18df2ccd1fe00a03b6398471c1ff970f
{{0xf82e038e34cc78d9ULL, 0x4718f0a419800802ULL,
0x80eacf948770ced7ULL, 0x81ceb32c4b43fcf4ULL}},
- // (ten2mx >> 256) = 81ceb32c4b43fcf4 80eacf948770ced7
+ // (ten2mx >> 256) = 81ceb32c4b43fcf4 80eacf948770ced7
// 4718f0a419800802f82e038e34cc78d9
{{0x59e338e387ad8e28ULL, 0x0b5b1aa028ccd99eULL,
0x67de18eda5814af2ULL, 0xcfb11ead453994baULL}},
- // (ten2mx >> 256) = cfb11ead453994ba 67de18eda5814af2
+ // (ten2mx >> 256) = cfb11ead453994ba 67de18eda5814af2
// b5b1aa028ccd99e59e338e387ad8e28
{{0x47e8fa4f9fbe0b53ULL, 0x6f7c154ced70ae18ULL,
0xecb1ad8aeacdd58eULL, 0xa6274bbdd0fadd61ULL}},
- // (ten2mx >> 256) = a6274bbdd0fadd61 ecb1ad8aeacdd58e
+ // (ten2mx >> 256) = a6274bbdd0fadd61 ecb1ad8aeacdd58e
// 6f7c154ced70ae1847e8fa4f9fbe0b53
{{0xd320c83fb2fe6f75ULL, 0xbf967770bdf3be79ULL,
0xbd5af13bef0b113eULL, 0x84ec3c97da624ab4ULL}},
- // (ten2mx >> 256) = 84ec3c97da624ab4 bd5af13bef0b113e
+ // (ten2mx >> 256) = 84ec3c97da624ab4 bd5af13bef0b113e
// bf967770bdf3be79d320c83fb2fe6f75
{{0x85014065eb30b256ULL, 0x65bd8be79652ca5cULL,
0x955e4ec64b44e864ULL, 0xd4ad2dbfc3d07787ULL}},
- // (ten2mx >> 256) = d4ad2dbfc3d07787 955e4ec64b44e864
+ // (ten2mx >> 256) = d4ad2dbfc3d07787 955e4ec64b44e864
// 65bd8be79652ca5c85014065eb30b256
{{0xd0cdcd1e55c08eabULL, 0xeafe098611dbd516ULL,
0xdde50bd1d5d0b9e9ULL, 0xaa242499697392d2ULL}},
- // (ten2mx >> 256) = aa242499697392d2 dde50bd1d5d0b9e9
+ // (ten2mx >> 256) = aa242499697392d2 dde50bd1d5d0b9e9
// eafe098611dbd516d0cdcd1e55c08eab
{{0x40a4a418449a0bbcULL, 0xbbfe6e04db164412ULL,
0x7e50d64177da2e54ULL, 0x881cea14545c7575ULL}},
- // (ten2mx >> 256) = 881cea14545c7575 7e50d64177da2e54
+ // (ten2mx >> 256) = 881cea14545c7575 7e50d64177da2e54
// bbfe6e04db16441240a4a418449a0bbc
{{0x9aa1068d3a9012c7ULL, 0x2cca49a15e8a0683ULL,
0x96e7bd358c904a21ULL, 0xd9c7dced53c72255ULL}},
- // (ten2mx >> 256) = d9c7dced53c72255 96e7bd358c904a21
+ // (ten2mx >> 256) = d9c7dced53c72255 96e7bd358c904a21
// 2cca49a15e8a06839aa1068d3a9012c7
{{0x154d9ed7620cdbd2ULL, 0x8a3b6e1ab2080536ULL,
0xabec975e0a0d081aULL, 0xae397d8aa96c1b77ULL}},
- // (ten2mx >> 256) = ae397d8aa96c1b77 abec975e0a0d081a
+ // (ten2mx >> 256) = ae397d8aa96c1b77 abec975e0a0d081a
// 8a3b6e1ab2080536154d9ed7620cdbd2
{{0x443e18ac4e70afdbULL, 0x3b62be7bc1a0042bULL,
0x2323ac4b3b3da015ULL, 0x8b61313bbabce2c6ULL}},
- // (ten2mx >> 256) = 8b61313bbabce2c6 2323ac4b3b3da015
+ // (ten2mx >> 256) = 8b61313bbabce2c6 2323ac4b3b3da015
// 3b62be7bc1a0042b443e18ac4e70afdb
{{0x6d30277a171ab2f8ULL, 0x5f0463f935ccd378ULL,
0x6b6c46dec52f6688ULL, 0xdf01e85f912e37a3ULL}},
- // (ten2mx >> 256) = df01e85f912e37a3 6b6c46dec52f6688
+ // (ten2mx >> 256) = df01e85f912e37a3 6b6c46dec52f6688
// 5f0463f935ccd3786d30277a171ab2f8
{{0x8a8cec61ac155bfaULL, 0x7f36b660f7d70f93ULL,
0x55f038b237591ed3ULL, 0xb267ed1940f1c61cULL}},
- // (ten2mx >> 256) = b267ed1940f1c61c 55f038b237591ed3
+ // (ten2mx >> 256) = b267ed1940f1c61c 55f038b237591ed3
// 7f36b660f7d70f938a8cec61ac155bfa
{{0x3ba3f04e23444995ULL, 0xcc2bc51a5fdf3fa9ULL,
0x77f3608e92adb242ULL, 0x8eb98a7a9a5b04e3ULL}},
- // (ten2mx >> 256) = 8eb98a7a9a5b04e3 77f3608e92adb242
+ // (ten2mx >> 256) = 8eb98a7a9a5b04e3 77f3608e92adb242
// cc2bc51a5fdf3fa93ba3f04e23444995
{{0xf9064d49d206dc21ULL, 0xe046082a32fecc41ULL,
0x8cb89a7db77c506aULL, 0xe45c10c42a2b3b05ULL}},
- // (ten2mx >> 256) = e45c10c42a2b3b05 8cb89a7db77c506a
+ // (ten2mx >> 256) = e45c10c42a2b3b05 8cb89a7db77c506a
// e046082a32fecc41f9064d49d206dc21
{{0xfa6b7107db38b01aULL, 0x4d04d354f598a367ULL,
0x3d607b97c5fd0d22ULL, 0xb6b00d69bb55c8d1ULL}},
- // (ten2mx >> 256) = b6b00d69bb55c8d1 3d607b97c5fd0d22
+ // (ten2mx >> 256) = b6b00d69bb55c8d1 3d607b97c5fd0d22
// 4d04d354f598a367fa6b7107db38b01a
{{0xfb8927397c2d59afULL, 0x3d9d75dd9146e91fULL,
0xcab3961304ca70e8ULL, 0x9226712162ab070dULL}},
- // (ten2mx >> 256) = 9226712162ab070d cab3961304ca70e8
+ // (ten2mx >> 256) = 9226712162ab070d cab3961304ca70e8
// 3d9d75dd9146e91ffb8927397c2d59af
{{0xf8db71f5937bc2b1ULL, 0xc8fbefc8e87174ffULL,
0xaab8f01e6e10b4a6ULL, 0xe9d71b689dde71afULL}},
- // (ten2mx >> 256) = e9d71b689dde71af aab8f01e6e10b4a6
+ // (ten2mx >> 256) = e9d71b689dde71af aab8f01e6e10b4a6
// c8fbefc8e87174fff8db71f5937bc2b1
{{0x2d7c5b2adc630227ULL, 0x3a63263a538df733ULL,
0x5560c018580d5d52ULL, 0xbb127c53b17ec159ULL}},
- // (ten2mx >> 256) = bb127c53b17ec159 5560c018580d5d52
+ // (ten2mx >> 256) = bb127c53b17ec159 5560c018580d5d52
// 3a63263a538df7332d7c5b2adc630227
{{0x24637c2249e8ce86ULL, 0x2eb5b82ea93e5f5cULL,
0xdde7001379a44aa8ULL, 0x95a8637627989aadULL}},
- // (ten2mx >> 256) = 95a8637627989aad dde7001379a44aa8
+ // (ten2mx >> 256) = 95a8637627989aad dde7001379a44aa8
// 2eb5b82ea93e5f5c24637c2249e8ce86
{{0x3a38c69d430e173dULL, 0x4abc59e441fd6560ULL,
0x963e66858f6d4440ULL, 0xef73d256a5c0f77cULL}},
- // (ten2mx >> 256) = ef73d256a5c0f77c 963e66858f6d4440
+ // (ten2mx >> 256) = ef73d256a5c0f77c 963e66858f6d4440
// 4abc59e441fd65603a38c69d430e173d
{{0x94fa387dcf3e78fdULL, 0x6efd14b69b311de6ULL,
0xde98520472bdd033ULL, 0xbf8fdb78849a5f96ULL}},
- // (ten2mx >> 256) = bf8fdb78849a5f96 de98520472bdd033
+ // (ten2mx >> 256) = bf8fdb78849a5f96 de98520472bdd033
// 6efd14b69b311de694fa387dcf3e78fd
{{0xaa61c6cb0c31fa64ULL, 0x259743c548f417ebULL,
0xe546a8038efe4029ULL, 0x993fe2c6d07b7fabULL}},
- // (ten2mx >> 256) = 993fe2c6d07b7fab e546a8038efe4029
+ // (ten2mx >> 256) = 993fe2c6d07b7fab e546a8038efe4029
// 259743c548f417ebaa61c6cb0c31fa64
{{0xaa360ade79e990a1ULL, 0x3c25393ba7ecf312ULL,
0xd53dd99f4b3066a8ULL, 0xf53304714d9265dfULL}},
- // (ten2mx >> 256) = f53304714d9265df d53dd99f4b3066a8
+ // (ten2mx >> 256) = f53304714d9265df d53dd99f4b3066a8
// 3c25393ba7ecf312aa360ade79e990a1
{{0x882b3be52e5473b4ULL, 0x96842dc95323f5a8ULL,
0xaa97e14c3c26b886ULL, 0xc428d05aa4751e4cULL}},
- // (ten2mx >> 256) = c428d05aa4751e4c aa97e14c3c26b886
+ // (ten2mx >> 256) = c428d05aa4751e4c aa97e14c3c26b886
// 96842dc95323f5a8882b3be52e5473b4
{{0xd355c98425105c90ULL, 0xab9cf16ddc1cc486ULL,
0x55464dd69685606bULL, 0x9ced737bb6c4183dULL}},
- // (ten2mx >> 256) = 9ced737bb6c4183d 55464dd69685606b
+ // (ten2mx >> 256) = 9ced737bb6c4183d 55464dd69685606b
// ab9cf16ddc1cc486d355c98425105c90
{{0xebbc75a03b4d60e6ULL, 0xac2e4f162cfad40aULL,
0xeed6e2f0f0d56712ULL, 0xfb158592be068d2eULL}},
- // (ten2mx >> 256) = fb158592be068d2e eed6e2f0f0d56712
+ // (ten2mx >> 256) = fb158592be068d2e eed6e2f0f0d56712
// ac2e4f162cfad40aebbc75a03b4d60e6
{{0x8963914cfc3de71eULL, 0x568b727823fbdcd5ULL,
0xf245825a5a445275ULL, 0xc8de047564d20a8bULL}},
- // (ten2mx >> 256) = c8de047564d20a8b f245825a5a445275
+ // (ten2mx >> 256) = c8de047564d20a8b f245825a5a445275
// 568b727823fbdcd58963914cfc3de71e
{{0xd44fa770c9cb1f4bULL, 0x453c5b934ffcb0aaULL,
0x5b6aceaeae9d0ec4ULL, 0xa0b19d2ab70e6ed6ULL}},
- // (ten2mx >> 256) = a0b19d2ab70e6ed6 5b6aceaeae9d0ec4
+ // (ten2mx >> 256) = a0b19d2ab70e6ed6 5b6aceaeae9d0ec4
// 453c5b934ffcb0aad44fa770c9cb1f4b
{{0xdd0c85f3d4a27f6fULL, 0x37637c75d996f3bbULL,
0xe2bbd88bbee40bd0ULL, 0x808e17555f3ebf11ULL}},
- // (ten2mx >> 256) = 808e17555f3ebf11 e2bbd88bbee40bd0
+ // (ten2mx >> 256) = 808e17555f3ebf11 e2bbd88bbee40bd0
// 37637c75d996f3bbdd0c85f3d4a27f6f
{{0x61ada31fba9d98b2ULL, 0x256bfa5628f185f9ULL,
0x3792f412cb06794dULL, 0xcdb02555653131b6ULL}},
- // (ten2mx >> 256) = cdb02555653131b6 3792f412cb06794d
+ // (ten2mx >> 256) = cdb02555653131b6 3792f412cb06794d
// 256bfa5628f185f961ada31fba9d98b2
{{0xe7be1c196217ad5bULL, 0x51232eab53f46b2dULL,
0x5fa8c3423c052dd7ULL, 0xa48ceaaab75a8e2bULL}},
- // (ten2mx >> 256) = a48ceaaab75a8e2b 5fa8c3423c052dd7
+ // (ten2mx >> 256) = a48ceaaab75a8e2b 5fa8c3423c052dd7
// 51232eab53f46b2de7be1c196217ad5b
{{0x52fe7ce11b462449ULL, 0x40e8f222a99055beULL,
0x1953cf68300424acULL, 0x83a3eeeef9153e89ULL}},
- // (ten2mx >> 256) = 83a3eeeef9153e89 1953cf68300424ac
+ // (ten2mx >> 256) = 83a3eeeef9153e89 1953cf68300424ac
// 40e8f222a99055be52fe7ce11b462449
{{0x51972e34f8703a0fULL, 0x34a7e9d10f4d55fdULL,
0x8eec7f0d19a03aadULL, 0xd29fe4b18e88640eULL}},
- // (ten2mx >> 256) = d29fe4b18e88640e 8eec7f0d19a03aad
+ // (ten2mx >> 256) = d29fe4b18e88640e 8eec7f0d19a03aad
// 34a7e9d10f4d55fd51972e34f8703a0f
{{0x0e128b5d938cfb3fULL, 0x2a1fee40d90aab31ULL,
0x3f2398d747b36224ULL, 0xa87fea27a539e9a5ULL}},
- // (ten2mx >> 256) = a87fea27a539e9a5 3f2398d747b36224
+ // (ten2mx >> 256) = a87fea27a539e9a5 3f2398d747b36224
// 2a1fee40d90aab310e128b5d938cfb3f
{{0x3e753c4adc70c8ffULL, 0xbb4cbe9a473bbc27ULL,
0x98e947129fc2b4e9ULL, 0x86ccbb52ea94baeaULL}},
- // (ten2mx >> 256) = 86ccbb52ea94baea 98e947129fc2b4e9
+ // (ten2mx >> 256) = 86ccbb52ea94baea 98e947129fc2b4e9
// bb4cbe9a473bbc273e753c4adc70c8ff
{{0x30bb93aafa4e0e65ULL, 0x9214642a0b92c6a5ULL,
0x5b0ed81dcc6abb0fULL, 0xd7adf884aa879177ULL}},
- // (ten2mx >> 256) = d7adf884aa879177 5b0ed81dcc6abb0f
+ // (ten2mx >> 256) = d7adf884aa879177 5b0ed81dcc6abb0f
// 9214642a0b92c6a530bb93aafa4e0e65
{{0xc0960fbbfb71a51eULL, 0xa8105021a2dbd21dULL,
0xe272467e3d222f3fULL, 0xac8b2d36eed2dac5ULL}},
- // (ten2mx >> 256) = ac8b2d36eed2dac5 e272467e3d222f3f
+ // (ten2mx >> 256) = ac8b2d36eed2dac5 e272467e3d222f3f
// a8105021a2dbd21dc0960fbbfb71a51e
{{0x66de72fcc927b74bULL, 0xb9a6a6814f1641b1ULL,
0x1b8e9ecb641b58ffULL, 0x8a08f0f8bf0f156bULL}},
- // (ten2mx >> 256) = 8a08f0f8bf0f156b 1b8e9ecb641b58ff
+ // (ten2mx >> 256) = 8a08f0f8bf0f156b 1b8e9ecb641b58ff
// b9a6a6814f1641b166de72fcc927b74b
{{0xd7ca5194750c5878ULL, 0xf5d770cee4f0691bULL,
0xf8e431456cf88e65ULL, 0xdcdb1b2798182244ULL}},
- // (ten2mx >> 256) = dcdb1b2798182244 f8e431456cf88e65
+ // (ten2mx >> 256) = dcdb1b2798182244 f8e431456cf88e65
// f5d770cee4f0691bd7ca5194750c5878
{{0xdfd50e105da379f9ULL, 0x9179270bea59edafULL,
0x2d835a9df0c6d851ULL, 0xb0af48ec79ace837ULL}},
- // (ten2mx >> 256) = b0af48ec79ace837 2d835a9df0c6d851
+ // (ten2mx >> 256) = b0af48ec79ace837 2d835a9df0c6d851
// 9179270bea59edafdfd50e105da379f9
{{0x19773e737e1c6194ULL, 0x0dfa85a321e18af3ULL,
0x579c487e5a38ad0eULL, 0x8d590723948a535fULL}},
- // (ten2mx >> 256) = 8d590723948a535f 579c487e5a38ad0e
+ // (ten2mx >> 256) = 8d590723948a535f 579c487e5a38ad0e
// dfa85a321e18af319773e737e1c6194
{{0xf58b971f302d68eeULL, 0x165da29e9c9c1184ULL,
0x25c6da63c38de1b0ULL, 0xe2280b6c20dd5232ULL}},
- // (ten2mx >> 256) = e2280b6c20dd5232 25c6da63c38de1b0
+ // (ten2mx >> 256) = e2280b6c20dd5232 25c6da63c38de1b0
// 165da29e9c9c1184f58b971f302d68ee
{{0xc46fac18f3578724ULL, 0x4517b54bb07cdad0ULL,
0x1e38aeb6360b1af3ULL, 0xb4ecd5f01a4aa828ULL}},
- // (ten2mx >> 256) = b4ecd5f01a4aa828 1e38aeb6360b1af3
+ // (ten2mx >> 256) = b4ecd5f01a4aa828 1e38aeb6360b1af3
// 4517b54bb07cdad0c46fac18f3578724
{{0x36bfbce0c2ac6c1dULL, 0x9dac910959fd7bdaULL,
0xb1c6f22b5e6f48c2ULL, 0x90bd77f3483bb9b9ULL}},
- // (ten2mx >> 256) = 90bd77f3483bb9b9 b1c6f22b5e6f48c2
+ // (ten2mx >> 256) = 90bd77f3483bb9b9 b1c6f22b5e6f48c2
// 9dac910959fd7bda36bfbce0c2ac6c1d
{{0x2465fb01377a4695ULL, 0x2f7a81a88ffbf95dULL,
0xb60b1d1230b20e04ULL, 0xe7958cb87392c2c2ULL}}
- // (ten2mx >> 256) = e7958cb87392c2c2 b60b1d1230b20e04
+ // (ten2mx >> 256) = e7958cb87392c2c2 b60b1d1230b20e04
// 2f7a81a88ffbf95d2465fb01377a4695
};
diff --git a/libgcc/config/libbid/bid128_2_str.h b/libgcc/config/libbid/bid128_2_str.h
index c507490..2030ccf 100644
--- a/libgcc/config/libbid/bid128_2_str.h
+++ b/libgcc/config/libbid/bid128_2_str.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 0a7eadb..1468831 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 a8b217d..8f5069e 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -135,7 +135,7 @@ const char midi_tbl[1000][3] = {
};
const UINT64 mod10_18_tbl[9][128] = {
- // 2^59 = 576460752303423488, A and B breakdown, where data = A*10^18 + B
+ // 2^59 = 576460752303423488, A and B breakdown, where data = A*10^18 + B
{
0LL, 0LL, 0LL, 576460752303423488LL,
diff --git a/libgcc/config/libbid/bid128_add.c b/libgcc/config/libbid/bid128_add.c
index f4061d3..1e17c01 100644
--- a/libgcc/config/libbid/bid128_add.c
+++ b/libgcc/config/libbid/bid128_add.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -573,15 +573,15 @@ bid128_add (UINT128 x, UINT128 y
}
// unpack the arguments
- // unpack x
+ // unpack x
C1_hi = x.w[1] & MASK_COEFF;
C1_lo = x.w[0];
// test for non-canonical values:
- // - values whose encoding begins with x00, x01, or x10 and whose
+ // - values whose encoding begins with x00, x01, or x10 and whose
// coefficient is larger than 10^34 -1, or
- // - values whose encoding begins with x1100, x1101, x1110 (if NaNs
- // and infinitis were eliminated already this test is reduced to
- // checking for x10x)
+ // - values whose encoding begins with x1100, x1101, x1110 (if NaNs
+ // and infinitis were eliminated already this test is reduced to
+ // checking for x10x)
// x is not infinity; check for non-canonical values - treated as zero
if ((x.w[1] & 0x6000000000000000ull) == 0x6000000000000000ull) {
@@ -602,21 +602,21 @@ bid128_add (UINT128 x, UINT128 y
}
}
- // unpack y
+ // unpack y
C2_hi = y.w[1] & MASK_COEFF;
C2_lo = y.w[0];
- // y is not infinity; check for non-canonical values - treated as zero
+ // y is not infinity; check for non-canonical values - treated as zero
if ((y.w[1] & 0x6000000000000000ull) == 0x6000000000000000ull) {
- // G0_G1=11; non-canonical
+ // G0_G1=11; non-canonical
y_exp = (y.w[1] << 2) & MASK_EXP; // biased and shifted left 49 bits
C2_hi = 0; // significand high
- C2_lo = 0; // significand low
- } else { // G0_G1 != 11
+ C2_lo = 0; // significand low
+ } else { // G0_G1 != 11
y_exp = y.w[1] & MASK_EXP; // biased and shifted left 49 bits
if (C2_hi > 0x0001ed09bead87c0ull ||
(C2_hi == 0x0001ed09bead87c0ull
&& C2_lo > 0x378d8e63ffffffffull)) {
- // y is non-canonical if coefficient is larger than 10^34 -1
+ // y is non-canonical if coefficient is larger than 10^34 -1
C2_hi = 0;
C2_lo = 0;
} else { // canonical
@@ -651,7 +651,7 @@ bid128_add (UINT128 x, UINT128 y
if (C2_hi == 0) { // y_bits is the nr. of bits in C2_lo
if (C2_lo >= 0x0020000000000000ull) { // y >= 2^53
- // split the 64-bit value in two 32-bit halves to avoid
+ // split the 64-bit value in two 32-bit halves to avoid
// rounding errors
if (C2_lo >= 0x0000000100000000ull) { // y >= 2^32
tmp2.d = (double) (C2_lo >> 32); // exact conversion
@@ -690,7 +690,7 @@ bid128_add (UINT128 x, UINT128 y
if (scale == 0) {
res.w[1] = y.w[1];
res.w[0] = y.w[0];
- } else if (q2 <= 19) { // y fits in 64 bits
+ } else if (q2 <= 19) { // y fits in 64 bits
if (scale <= 19) { // 10^scale fits in 64 bits
// 64 x 64 C2_lo * ten2k64[scale]
__mul_64x64_to_128MACH (res, C2_lo, ten2k64[scale]);
@@ -698,7 +698,7 @@ bid128_add (UINT128 x, UINT128 y
// 64 x 128 C2_lo * ten2k128[scale - 20]
__mul_128x64_to_128 (res, C2_lo, ten2k128[scale - 20]);
}
- } else { // y fits in 128 bits, but 10^scale must fit in 64 bits
+ } else { // y fits in 128 bits, but 10^scale must fit in 64 bits
// 64 x 128 ten2k64[scale] * C2
C2.w[1] = C2_hi;
C2.w[0] = C2_lo;
@@ -724,7 +724,7 @@ bid128_add (UINT128 x, UINT128 y
// determine first the nr. of bits in x
if (C1_hi == 0) { // x_bits is the nr. of bits in C1_lo
if (C1_lo >= 0x0020000000000000ull) { // x >= 2^53
- // split the 64-bit value in two 32-bit halves to avoid
+ // split the 64-bit value in two 32-bit halves to avoid
// rounding errors
if (C1_lo >= 0x0000000100000000ull) { // x >= 2^32
tmp1.d = (double) (C1_lo >> 32); // exact conversion
@@ -755,7 +755,7 @@ bid128_add (UINT128 x, UINT128 y
q1++;
}
// return (C1 * 10^scale) * 10^(x_exp - scale)
- // where scale = min (P34-q1, x_exp-y_exp)
+ // where scale = min (P34-q1, x_exp-y_exp)
scale = P34 - q1;
ind = (x_exp - y_exp) >> 49;
if (ind < scale)
@@ -763,9 +763,9 @@ bid128_add (UINT128 x, UINT128 y
if (scale == 0) {
res.w[1] = x.w[1];
res.w[0] = x.w[0];
- } else if (q1 <= 19) { // x fits in 64 bits
+ } else if (q1 <= 19) { // x fits in 64 bits
if (scale <= 19) { // 10^scale fits in 64 bits
- // 64 x 64 C1_lo * ten2k64[scale]
+ // 64 x 64 C1_lo * ten2k64[scale]
__mul_64x64_to_128MACH (res, C1_lo, ten2k64[scale]);
} else { // 10^scale fits in 128 bits
// 64 x 128 C1_lo * ten2k128[scale - 20]
@@ -786,7 +786,7 @@ bid128_add (UINT128 x, UINT128 y
} else { // x and y are not canonical, not special, and are not zero
// note that the result may still be zero, and then it has to have the
// preferred exponent
- if (x_exp < y_exp) { // if exp_x < exp_y then swap x and y
+ if (x_exp < y_exp) { // if exp_x < exp_y then swap x and y
tmp_sign = x_sign;
tmp_exp = x_exp;
tmp_signif_hi = C1_hi;
@@ -879,7 +879,7 @@ bid128_add (UINT128 x, UINT128 y
// possibly scaled up by 10^(P34-q1)
// an overflow cannot occur in this case (rounding to nearest)
if (q1 < P34) { // scale C1 up by 10^(P34-q1)
- // Note: because delta >= P34+1 it is certain that
+ // Note: because delta >= P34+1 it is certain that
// x_exp - ((UINT64)scale << 49) will stay above e_min
scale = P34 - q1;
if (q1 <= 19) { // C1 fits in 64 bits
@@ -903,10 +903,10 @@ bid128_add (UINT128 x, UINT128 y
C1_hi = C1.w[1];
C1_lo = C1.w[0];
}
- // some special cases arise: if delta = P34 + 1 and C1 = 10^(P34-1)
- // (after scaling) and x_sign != y_sign and C2 > 5*10^(q2-1) =>
+ // some special cases arise: if delta = P34 + 1 and C1 = 10^(P34-1)
+ // (after scaling) and x_sign != y_sign and C2 > 5*10^(q2-1) =>
// subtract 1 ulp
- // Note: do this only for rounding to nearest; for other rounding
+ // Note: do this only for rounding to nearest; for other rounding
// modes the correction will be applied next
if ((rnd_mode == ROUNDING_TO_NEAREST
|| rnd_mode == ROUNDING_TIES_AWAY) && delta == (P34 + 1)
@@ -970,7 +970,7 @@ bid128_add (UINT128 x, UINT128 y
C1_lo = C1_lo - 1;
if (C1_lo == 0xffffffffffffffffull)
C1_hi = C1_hi - 1;
- // if the coefficient is 10^33 - 1 then make it 10^34 - 1 and
+ // if the coefficient is 10^33 - 1 then make it 10^34 - 1 and
// decrease the exponent by 1 (because delta >= P34 + 1 the
// exponent will not become less than e_min)
// 10^33 - 1 = 0x0000314dc6448d9338c15b09ffffffff
@@ -991,7 +991,7 @@ bid128_add (UINT128 x, UINT128 y
// assemble the result
res.w[1] = x_sign | x_exp | C1_hi;
res.w[0] = C1_lo;
- } else { // delta = P34
+ } else { // delta = P34
// in most cases, the smaller operand may be < or = or > 1/2 ulp of the
// larger operand
// however, the case C1 = 10^(q1-1) and x_sign != y_sign is special due
@@ -1007,7 +1007,7 @@ bid128_add (UINT128 x, UINT128 y
if (q2 <= 19) { // C2 and 5*10^(q2-1) both fit in 64 bits
halfulp64 = midpoint64[q2 - 1]; // 5 * 10^(q2-1)
if (C2_lo < halfulp64) { // n2 < 1/2 ulp (n1)
- // for RN the result is the operand with the larger magnitude,
+ // for RN the result is the operand with the larger magnitude,
// possibly scaled up by 10^(P34-q1)
// an overflow cannot occur in this case (rounding to nearest)
if (q1 < P34) { // scale C1 up by 10^(P34-q1)
@@ -1067,7 +1067,7 @@ bid128_add (UINT128 x, UINT128 y
C1_lo = C1_lo - 1;
if (C1_lo == 0xffffffffffffffffull)
C1_hi = C1_hi - 1;
- // if the coefficient is 10^33-1 then make it 10^34-1 and
+ // if the coefficient is 10^33-1 then make it 10^34-1 and
// decrease the exponent by 1 (because delta >= P34 + 1 the
// exponent will not become less than e_min)
// 10^33 - 1 = 0x0000314dc6448d9338c15b09ffffffff
@@ -1102,17 +1102,17 @@ bid128_add (UINT128 x, UINT128 y
// 1 <= q1 <= 19 => 15 <= scale <= 33
if (scale <= 19) { // 10^scale fits in 64 bits
__mul_64x64_to_128MACH (C1, ten2k64[scale], C1_lo);
- } else { // if 20 <= scale <= 33
+ } else { // if 20 <= scale <= 33
// C1 * 10^scale = (C1 * 10^(scale-19)) * 10^19 where
- // (C1 * 10^(scale-19)) fits in 64 bits
+ // (C1 * 10^(scale-19)) fits in 64 bits
C1_lo = C1_lo * ten2k64[scale - 19];
__mul_64x64_to_128MACH (C1, ten2k64[19], C1_lo);
}
} else { //if 20 <= q1 <= 33=P34-1 then C1 fits only in 128 bits
- // => 1 <= P34 - q1 <= 14 so 10^(P34-q1) fits in 64 bits
+ // => 1 <= P34 - q1 <= 14 so 10^(P34-q1) fits in 64 bits
C1.w[1] = C1_hi;
C1.w[0] = C1_lo;
- // C1 = ten2k64[P34 - q1] * C1
+ // C1 = ten2k64[P34 - q1] * C1
__mul_128x64_to_128 (C1, ten2k64[P34 - q1], C1);
}
x_exp = x_exp - ((UINT64) scale << 49);
@@ -1172,17 +1172,17 @@ bid128_add (UINT128 x, UINT128 y
}
// set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
- // assemble the result
+ // assemble the result
res.w[1] = x_sign | x_exp | C1_hi;
res.w[0] = C1_lo;
- } else { // if C2_lo > halfulp64 ||
+ } else { // if C2_lo > halfulp64 ||
// (C2_lo == halfulp64 && q1 == P34 && ((C1_lo & 0x1) == 1)), i.e.
// 1/2 ulp(n1) < n2 < 1 ulp(n1) or n2 = 1/2 ulp(n1) and C1 odd
// res = x+1 ulp if n1*n2 > 0 and res = x-1 ulp if n1*n2 < 0
if (q1 < P34) { // then 1 ulp = 10^(e1+q1-P34) < 10^e1
// Note: if (q1 == P34) then 1 ulp = 10^(e1+q1-P34) = 10^e1
- // because q1 < P34 we must first replace C1 by
- // C1 * 10^(P34-q1), and must decrease the exponent by
+ // because q1 < P34 we must first replace C1 by
+ // C1 * 10^(P34-q1), and must decrease the exponent by
// (P34-q1) (it will still be at least e_min)
scale = P34 - q1;
if (q1 <= 19) { // C1 fits in 64 bits
@@ -1208,7 +1208,7 @@ bid128_add (UINT128 x, UINT128 y
// check for rounding overflow
if (C1_hi == 0x0001ed09bead87c0ull
&& C1_lo == 0x378d8e6400000000ull) {
- // C1 = 10^34 => rounding overflow
+ // C1 = 10^34 => rounding overflow
C1_hi = 0x0000314dc6448d93ull;
C1_lo = 0x38c15b0a00000000ull; // 10^33
x_exp = x_exp + EXP_P1;
@@ -1269,7 +1269,7 @@ bid128_add (UINT128 x, UINT128 y
res.w[1] = x_sign | x_exp | C1_hi;
res.w[0] = C1_lo;
}
- } else { // if q2 >= 20 then 5*10^(q2-1) and C2 (the latter in
+ } else { // if q2 >= 20 then 5*10^(q2-1) and C2 (the latter in
// most cases) fit only in more than 64 bits
halfulp128 = midpoint128[q2 - 20]; // 5 * 10^(q2-1)
if ((C2_hi < halfulp128.w[1])
@@ -1287,17 +1287,17 @@ bid128_add (UINT128 x, UINT128 y
// 1 <= q1 <= 19 => 15 <= scale <= 33
if (scale <= 19) { // 10^scale fits in 64 bits
__mul_64x64_to_128MACH (C1, ten2k64[scale], C1_lo);
- } else { // if 20 <= scale <= 33
+ } else { // if 20 <= scale <= 33
// C1 * 10^scale = (C1 * 10^(scale-19)) * 10^19 where
- // (C1 * 10^(scale-19)) fits in 64 bits
+ // (C1 * 10^(scale-19)) fits in 64 bits
C1_lo = C1_lo * ten2k64[scale - 19];
__mul_64x64_to_128MACH (C1, ten2k64[19], C1_lo);
}
} else { //if 20 <= q1 <= 33=P34-1 then C1 fits only in 128 bits
- // => 1 <= P34 - q1 <= 14 so 10^(P34-q1) fits in 64 bits
+ // => 1 <= P34 - q1 <= 14 so 10^(P34-q1) fits in 64 bits
C1.w[1] = C1_hi;
C1.w[0] = C1_lo;
- // C1 = ten2k64[P34 - q1] * C1
+ // C1 = ten2k64[P34 - q1] * C1
__mul_128x64_to_128 (C1, ten2k64[P34 - q1], C1);
}
C1_hi = C1.w[1];
@@ -1352,9 +1352,9 @@ bid128_add (UINT128 x, UINT128 y
; // the result is already correct
}
}
- // set the inexact flag
+ // set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
- // assemble the result
+ // assemble the result
res.w[1] = x_sign | x_exp | C1_hi;
res.w[0] = C1_lo;
} else if ((C2_hi == halfulp128.w[1]
@@ -1532,15 +1532,15 @@ bid128_add (UINT128 x, UINT128 y
// end case where C1 != 10^(q1-1)
} else { // C1 = 10^(q1-1) and x_sign != y_sign
// instead of C' = (C1 * 10^(e1-e2) + C2)rnd,P34
- // calculate C' = C1 * 10^(e1-e2-x1) + (C2 * 10^(-x1))rnd,P34
+ // calculate C' = C1 * 10^(e1-e2-x1) + (C2 * 10^(-x1))rnd,P34
// where x1 = q2 - 1, 0 <= x1 <= P34 - 1
- // Because C1 = 10^(q1-1) and x_sign != y_sign, C' will have P34
+ // Because C1 = 10^(q1-1) and x_sign != y_sign, C' will have P34
// digits and n = C' * 10^(e2+x1)
// If the result has P34+1 digits, redo the steps above with x1+1
- // If the result has P34-1 digits or less, redo the steps above with
+ // If the result has P34-1 digits or less, redo the steps above with
// x1-1 but only if initially x1 >= 1
// NOTE: these two steps can be improved, e.g we could guess if
- // P34+1 or P34-1 digits will be obtained by adding/subtracting
+ // P34+1 or P34-1 digits will be obtained by adding/subtracting
// just the top 64 bits of the two operands
// The result cannot be zero, and it cannot overflow
x1 = q2 - 1; // 0 <= x1 <= P34-1
@@ -1835,14 +1835,14 @@ bid128_add (UINT128 x, UINT128 y
// The coefficient of the result is C1 * 10^(e1-e2) + C2 and the
// exponent is e2; either C1 or 10^(e1-e2) may not fit is 64 bits,
// but their product fits with certainty in 128 bits (actually in 113)
- scale = delta - q1 + q2; // scale = (int)(e1 >> 49) - (int)(e2 >> 49)
+ scale = delta - q1 + q2; // scale = (int)(e1 >> 49) - (int)(e2 >> 49)
if (scale >= 20) { // 10^(e1-e2) does not fit in 64 bits, but C1 does
__mul_128x64_to_128 (C1, C1_lo, ten2k128[scale - 20]);
C1_hi = C1.w[1];
C1_lo = C1.w[0];
} else if (scale >= 1) {
- // if 1 <= scale <= 19 then 10^(e1-e2) fits in 64 bits
+ // if 1 <= scale <= 19 then 10^(e1-e2) fits in 64 bits
if (q1 <= 19) { // C1 fits in 64 bits
__mul_64x64_to_128MACH (C1, C1_lo, ten2k64[scale]);
} else { // q1 >= 20
@@ -1853,7 +1853,7 @@ bid128_add (UINT128 x, UINT128 y
C1_hi = C1.w[1];
C1_lo = C1.w[0];
} else { // if (scale == 0) C1 is unchanged
- C1.w[0] = C1_lo; // C1.w[1] = C1_hi;
+ C1.w[0] = C1_lo; // C1.w[1] = C1_hi;
}
// now add C2
if (x_sign == y_sign) {
@@ -1894,7 +1894,7 @@ bid128_add (UINT128 x, UINT128 y
res.w[1] = x_sign | y_exp | C1_hi;
res.w[0] = C1_lo;
} else if (delta == P34 - q2) {
- // calculate C' directly; the result may be inexact if it requires
+ // calculate C' directly; the result may be inexact if it requires
// P34+1 decimal digits; in this case the 'cutoff' point for addition
// is at the position of the lsb of C2, so 0 <= e1-e2 <= P34-1
// The coefficient of the result is C1 * 10^(e1-e2) + C2 and the
@@ -1927,8 +1927,8 @@ bid128_add (UINT128 x, UINT128 y
C1_hi++;
// test for overflow, possible only when C1 >= 10^34
if (C1_hi > 0x0001ed09bead87c0ull || (C1_hi == 0x0001ed09bead87c0ull && C1_lo >= 0x378d8e6400000000ull)) { // C1 >= 10^34
- // in this case q = P34 + 1 and x = q - P34 = 1, so multiply
- // C'' = C'+ 5 = C1 + 5 by k1 ~ 10^(-1) calculated for P34 + 1
+ // in this case q = P34 + 1 and x = q - P34 = 1, so multiply
+ // C'' = C'+ 5 = C1 + 5 by k1 ~ 10^(-1) calculated for P34 + 1
// decimal digits
// Calculate C'' = C' + 1/2 * 10^x
if (C1_lo >= 0xfffffffffffffffbull) { // low half add has carry
@@ -1946,10 +1946,10 @@ bid128_add (UINT128 x, UINT128 y
ten2m1.w[0] = 0x9999999999999a00ull;
__mul_128x128_to_256 (P256, C1, ten2m1); // P256 = C*, f*
// C* is actually floor(C*) in this case
- // the top Ex = 128 bits of 10^(-1) are
+ // the top Ex = 128 bits of 10^(-1) are
// T* = 0x00199999999999999999999999999999
// if (0 < f* < 10^(-x)) then
- // if floor(C*) is even then C = floor(C*) - logical right
+ // if floor(C*) is even then C = floor(C*) - logical right
// shift; C has p decimal digits, correct by Prop. 1)
// else if floor(C*) is odd C = floor(C*) - 1 (logical right
// shift; C has p decimal digits, correct by Pr. 1)
@@ -1989,9 +1989,9 @@ bid128_add (UINT128 x, UINT128 y
BID_SWAP128 (res);
BID_RETURN (res);
}
- // if (0 < f* - 1/2 < 10^(-x)) then
- // the result of the addition is exact
- // else
+ // if (0 < f* - 1/2 < 10^(-x)) then
+ // the result of the addition is exact
+ // else
// the result of the addition is inexact
if (P256.w[1] > 0x8000000000000000ull || (P256.w[1] == 0x8000000000000000ull && P256.w[0] > 0x0ull)) { // the result may be exact
tmp64 = P256.w[1] - 0x8000000000000000ull; // f* - 1/2
@@ -2015,7 +2015,7 @@ bid128_add (UINT128 x, UINT128 y
is_inexact_gt_midpoint = is_inexact
&& !(P256.w[1] & 0x8000000000000000ull);
}
- // general correction from RN to RA, RM, RP, RZ;
+ // general correction from RN to RA, RM, RP, RZ;
// result uses y_exp
if (rnd_mode != ROUNDING_TO_NEAREST) {
if ((!x_sign
@@ -2125,11 +2125,11 @@ bid128_add (UINT128 x, UINT128 y
res.w[0] = C1_lo;
} else { // if (delta >= P34 + 1 - q2)
// instead of C' = (C1 * 10^(e1-e2) + C2)rnd,P34
- // calculate C' = C1 * 10^(e1-e2-x1) + (C2 * 10^(-x1))rnd,P34
+ // calculate C' = C1 * 10^(e1-e2-x1) + (C2 * 10^(-x1))rnd,P34
// where x1 = q1 + e1 - e2 - P34, 1 <= x1 <= P34 - 1
// In most cases C' will have P34 digits, and n = C' * 10^(e2+x1)
// If the result has P34+1 digits, redo the steps above with x1+1
- // If the result has P34-1 digits or less, redo the steps above with
+ // If the result has P34-1 digits or less, redo the steps above with
// x1-1 but only if initially x1 >= 1
// NOTE: these two steps can be improved, e.g we could guess if
// P34+1 or P34-1 digits will be obtained by adding/subtracting just
@@ -2160,7 +2160,7 @@ bid128_add (UINT128 x, UINT128 y
tmp64 = C1.w[0]; // C1.w[1], C1.w[0] contains C1 * 10^(e1-e2-x1)
// now round C2 to q2-x1 decimal digits, where 1<=x1<=q2-1<=P34-1
- // (but if we got here a second time after x1 = x1 - 1, then
+ // (but if we got here a second time after x1 = x1 - 1, then
// x1 >= 0; note that for x1 = 0 C2 is unchanged)
// C2' = C2 + 1/2 * 10^x1 = C2 + 5 * 10^(x1-1)
ind = x1 - 1; // 0 <= ind <= q2-2<=P34-2=32; but note that if x1 = 0
@@ -2224,8 +2224,8 @@ bid128_add (UINT128 x, UINT128 y
is_midpoint_lt_even = 0;
is_midpoint_gt_even = 0;
}
- // determine inexactness of the rounding of C2* (this may be
- // followed by a second rounding only if we get P34+1
+ // determine inexactness of the rounding of C2* (this may be
+ // followed by a second rounding only if we get P34+1
// decimal digits)
// if (0 < f2* - 1/2 < 10^(-x1)) then
// the result is exact
@@ -2383,7 +2383,7 @@ bid128_add (UINT128 x, UINT128 y
if (C1.w[0] < tmp64)
C1.w[1]++; // carry
// if the sum has P34+1 digits, i.e. C1>=10^34 redo the calculation
- // with x1=x1+1
+ // with x1=x1+1
if (C1.w[1] > 0x0001ed09bead87c0ull || (C1.w[1] == 0x0001ed09bead87c0ull && C1.w[0] >= 0x378d8e6400000000ull)) { // C1 >= 10^34
// chop off one more digit from the sum, but make sure there is
// no double-rounding error (see table - double rounding logic)
@@ -2451,7 +2451,7 @@ bid128_add (UINT128 x, UINT128 y
}
}
tmp_inexact = 1; // in all cases
- } else { // the result is not a midpoint
+ } else { // the result is not a midpoint
// determine inexactness of the rounding of C1 (the sum C1+C2*)
// if (0 < f1* - 1/2 < 10^(-1)) then
// the result is exact
@@ -2537,9 +2537,9 @@ bid128_add (UINT128 x, UINT128 y
}
// if the difference has P34-1 digits or less, i.e. C1 < 10^33 then
// redo the calculation with x1=x1-1;
- // redo the calculation also if C1 = 10^33 and
+ // redo the calculation also if C1 = 10^33 and
// (is_inexact_gt_midpoint or is_midpoint_lt_even);
- // (the last part should have really been
+ // (the last part should have really been
// (is_inexact_lt_midpoint or is_midpoint_gt_even) from
// the rounding of C2, but the position flags have been reversed)
// 10^33 = 0x0000314dc6448d93 0x38c15b0a00000000
@@ -2557,7 +2557,7 @@ bid128_add (UINT128 x, UINT128 y
}
}
// if the coefficient of the result is 10^34 it means that this
- // must be the second pass, and we are done
+ // must be the second pass, and we are done
if (C1.w[1] == 0x0001ed09bead87c0ull && C1.w[0] == 0x378d8e6400000000ull) { // if C1 = 10^34
C1.w[1] = 0x0000314dc6448d93ull; // C1 = 10^33
C1.w[0] = 0x38c15b0a00000000ull;
@@ -2566,8 +2566,8 @@ bid128_add (UINT128 x, UINT128 y
x_sign = tmp_sign;
if (x1 >= 1)
y_exp = y_exp + ((UINT64) x1 << 49);
- // x1 = -1 is possible at the end of a second pass when the
- // first pass started with x1 = 1
+ // x1 = -1 is possible at the end of a second pass when the
+ // first pass started with x1 = 1
}
C1_hi = C1.w[1];
C1_lo = C1.w[0];
@@ -2650,12 +2650,12 @@ bid128_add (UINT128 x, UINT128 y
*pfpsf |= INEXACT_EXCEPTION;
}
} else { // if (-P34 + 1 <= delta <= -1) <=> 1 <= -delta <= P34 - 1
- // NOTE: the following, up to "} else { // if x_sign != y_sign
+ // NOTE: the following, up to "} else { // if x_sign != y_sign
// the result is exact" is identical to "else if (delta == P34 - q2) {"
// from above; also, the code is not symmetric: a+b and b+a may take
- // different paths (need to unify eventually!)
- // calculate C' = C2 + C1 * 10^(e1-e2) directly; the result may be
- // inexact if it requires P34 + 1 decimal digits; in either case the
+ // different paths (need to unify eventually!)
+ // calculate C' = C2 + C1 * 10^(e1-e2) directly; the result may be
+ // inexact if it requires P34 + 1 decimal digits; in either case the
// 'cutoff' point for addition is at the position of the lsb of C2
// The coefficient of the result is C1 * 10^(e1-e2) + C2 and the
// exponent is e2; either C1 or 10^(e1-e2) may not fit is 64 bits,
@@ -2692,8 +2692,8 @@ bid128_add (UINT128 x, UINT128 y
C1_hi++;
// test for overflow, possible only when C1 >= 10^34
if (C1_hi > 0x0001ed09bead87c0ull || (C1_hi == 0x0001ed09bead87c0ull && C1_lo >= 0x378d8e6400000000ull)) { // C1 >= 10^34
- // in this case q = P34 + 1 and x = q - P34 = 1, so multiply
- // C'' = C'+ 5 = C1 + 5 by k1 ~ 10^(-1) calculated for P34 + 1
+ // in this case q = P34 + 1 and x = q - P34 = 1, so multiply
+ // C'' = C'+ 5 = C1 + 5 by k1 ~ 10^(-1) calculated for P34 + 1
// decimal digits
// Calculate C'' = C' + 1/2 * 10^x
if (C1_lo >= 0xfffffffffffffffbull) { // low half add has carry
@@ -2711,10 +2711,10 @@ bid128_add (UINT128 x, UINT128 y
ten2m1.w[0] = 0x9999999999999a00ull;
__mul_128x128_to_256 (P256, C1, ten2m1); // P256 = C*, f*
// C* is actually floor(C*) in this case
- // the top Ex = 128 bits of 10^(-1) are
+ // the top Ex = 128 bits of 10^(-1) are
// T* = 0x00199999999999999999999999999999
// if (0 < f* < 10^(-x)) then
- // if floor(C*) is even then C = floor(C*) - logical right
+ // if floor(C*) is even then C = floor(C*) - logical right
// shift; C has p decimal digits, correct by Prop. 1)
// else if floor(C*) is odd C = floor(C*) - 1 (logical right
// shift; C has p decimal digits, correct by Pr. 1)
@@ -2754,9 +2754,9 @@ bid128_add (UINT128 x, UINT128 y
BID_SWAP128 (res);
BID_RETURN (res);
}
- // if (0 < f* - 1/2 < 10^(-x)) then
- // the result of the addition is exact
- // else
+ // if (0 < f* - 1/2 < 10^(-x)) then
+ // the result of the addition is exact
+ // else
// the result of the addition is inexact
if (P256.w[1] > 0x8000000000000000ull || (P256.w[1] == 0x8000000000000000ull && P256.w[0] > 0x0ull)) { // the result may be exact
tmp64 = P256.w[1] - 0x8000000000000000ull; // f* - 1/2
diff --git a/libgcc/config/libbid/bid128_compare.c b/libgcc/config/libbid/bid128_compare.c
index ce3f7af..bb04d7d 100644
--- a/libgcc/config/libbid/bid128_compare.c
+++ b/libgcc/config/libbid/bid128_compare.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -33,7 +33,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int, bid128_quiet_equal, x, y)
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -72,9 +72,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -90,9 +90,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -104,7 +104,7 @@ else
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -175,7 +175,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int, bid128_quiet_greater, x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered, rather than
+ // if either number is NAN, the comparison is unordered, rather than
// equal : return 0
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -201,7 +201,7 @@ if ((x.w[1] & MASK_INF) == MASK_INF) {
res = 0;
BID_RETURN (res);
}
- // x is pos infinity, it is greater, unless y is positive infinity =>
+ // x is pos infinity, it is greater, unless y is positive infinity =>
// return y!=pos_infinity
else {
res = (((y.w[1] & MASK_INF) != MASK_INF)
@@ -222,9 +222,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -240,9 +240,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -255,7 +255,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -286,7 +286,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison
+ // if exponents are the same, then we have a simple comparison
// of the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -295,7 +295,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if ((sig_x.w[1] > sig_y.w[1]
|| (sig_x.w[1] == sig_y.w[1] && sig_x.w[0] > sig_y.w[0]))
@@ -328,7 +328,7 @@ if (diff > 0) { // to simplify the loop below,
if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -348,7 +348,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to_192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -377,7 +377,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -398,7 +398,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to_192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -428,7 +428,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 1
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -476,9 +476,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -494,9 +494,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -509,7 +509,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -540,7 +540,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison of the
+ // if exponents are the same, then we have a simple comparison of the
// significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -549,7 +549,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x.w[1] >= sig_y.w[1] && sig_x.w[0] >= sig_y.w[0]
&& exp_x > exp_y) {
@@ -577,7 +577,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -597,7 +597,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -627,7 +627,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -649,7 +649,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -679,8 +679,8 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
- // rather than
+ // if either number is NAN, the comparison is unordered,
+ // rather than
// equal : return 1
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -706,7 +706,7 @@ if ((x.w[1] & MASK_INF) == MASK_INF) {
res = 0;
BID_RETURN (res);
}
- // x is pos infinity, it is greater, unless y is positive infinity =>
+ // x is pos infinity, it is greater, unless y is positive infinity =>
// return y!=pos_infinity
else {
res = (((y.w[1] & MASK_INF) != MASK_INF)
@@ -727,9 +727,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -745,9 +745,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -760,7 +760,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -791,7 +791,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison of the
+ // if exponents are the same, then we have a simple comparison of the
// significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -800,7 +800,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x.w[1] >= sig_y.w[1] && sig_x.w[0] >= sig_y.w[0]
&& exp_x > exp_y) {
@@ -828,7 +828,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -848,7 +848,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -878,7 +878,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -900,7 +900,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -928,7 +928,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int, bid128_quiet_less, x, y)
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -976,9 +976,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -994,9 +994,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -1009,7 +1009,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -1040,7 +1040,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison of the
+ // if exponents are the same, then we have a simple comparison of the
// significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -1049,7 +1049,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if ((sig_x.w[1] > sig_y.w[1]
|| (sig_x.w[1] == sig_y.w[1] && sig_x.w[0] > sig_y.w[0]))
@@ -1079,7 +1079,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -1099,7 +1099,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -1128,7 +1128,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -1150,7 +1150,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -1179,7 +1179,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int, bid128_quiet_less_equal,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -1205,7 +1205,7 @@ if ((x.w[1] & MASK_INF) == MASK_INF) {
res = 1;
BID_RETURN (res);
}
- // x is pos infinity, it is greater, unless y is positive infinity =>
+ // x is pos infinity, it is greater, unless y is positive infinity =>
// return y!=pos_infinity
else {
res = (((y.w[1] & MASK_INF) == MASK_INF)
@@ -1226,9 +1226,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -1244,9 +1244,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -1259,7 +1259,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -1290,7 +1290,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison of the
+ // if exponents are the same, then we have a simple comparison of the
// significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1]) || (sig_x.w[1] == sig_y.w[1] &&
@@ -1301,7 +1301,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if ((sig_x.w[1] > sig_y.w[1]
|| (sig_x.w[1] == sig_y.w[1] && sig_x.w[0] > sig_y.w[0]))
@@ -1331,7 +1331,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -1351,7 +1351,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -1381,7 +1381,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -1403,7 +1403,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -1480,9 +1480,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -1498,9 +1498,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -1513,7 +1513,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -1544,7 +1544,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison
+ // if exponents are the same, then we have a simple comparison
// of the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -1553,7 +1553,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if ((sig_x.w[1] > sig_y.w[1]
|| (sig_x.w[1] == sig_y.w[1] && sig_x.w[0] > sig_y.w[0]))
@@ -1583,7 +1583,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -1603,7 +1603,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -1633,7 +1633,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -1655,7 +1655,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -1683,7 +1683,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int, bid128_quiet_not_equal,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -1722,9 +1722,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -1740,9 +1740,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -1754,7 +1754,7 @@ else
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -1825,7 +1825,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int, bid128_quiet_not_greater,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -1871,9 +1871,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -1889,9 +1889,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -1904,7 +1904,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -1935,7 +1935,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison
+ // if exponents are the same, then we have a simple comparison
// of the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -1944,7 +1944,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if ((sig_x.w[1] > sig_y.w[1]
|| (sig_x.w[1] == sig_y.w[1] && sig_x.w[0] > sig_y.w[0]))
@@ -1974,7 +1974,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -1994,7 +1994,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -2024,7 +2024,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -2046,7 +2046,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -2075,7 +2075,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int, bid128_quiet_not_less, x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 1
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -2123,9 +2123,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -2141,9 +2141,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -2156,7 +2156,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -2188,7 +2188,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison
+ // if exponents are the same, then we have a simple comparison
// of the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -2197,7 +2197,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x.w[1] >= sig_y.w[1] && sig_x.w[0] >= sig_y.w[0]
&& exp_x > exp_y) {
@@ -2225,7 +2225,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -2245,7 +2245,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -2275,7 +2275,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -2297,7 +2297,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -2374,7 +2374,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int, bid128_signaling_greater,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -2417,9 +2417,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -2435,9 +2435,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -2450,7 +2450,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -2481,7 +2481,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison
+ // if exponents are the same, then we have a simple comparison
// of the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -2490,7 +2490,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if ((sig_x.w[1] > sig_y.w[1]
|| (sig_x.w[1] == sig_y.w[1] && sig_x.w[0] > sig_y.w[0]))
@@ -2523,7 +2523,7 @@ if (diff > 0) { // to simplify the loop below,
if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -2543,7 +2543,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to_192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -2572,7 +2572,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -2594,7 +2594,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to_192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -2624,7 +2624,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 1
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -2669,9 +2669,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -2687,9 +2687,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -2702,7 +2702,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -2733,7 +2733,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison
+ // if exponents are the same, then we have a simple comparison
// of the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -2742,7 +2742,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x.w[1] >= sig_y.w[1] && sig_x.w[0] >= sig_y.w[0]
&& exp_x > exp_y) {
@@ -2770,7 +2770,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -2790,7 +2790,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -2820,7 +2820,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -2842,7 +2842,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -2872,7 +2872,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 1
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -2915,9 +2915,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -2933,9 +2933,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -2948,7 +2948,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -2979,7 +2979,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison
+ // if exponents are the same, then we have a simple comparison
// of the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -2988,7 +2988,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x.w[1] >= sig_y.w[1] && sig_x.w[0] >= sig_y.w[0]
&& exp_x > exp_y) {
@@ -3016,7 +3016,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -3036,7 +3036,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -3066,7 +3066,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -3088,7 +3088,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -3117,7 +3117,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int, bid128_signaling_less, x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -3162,9 +3162,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -3180,9 +3180,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -3195,7 +3195,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -3226,7 +3226,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison
+ // if exponents are the same, then we have a simple comparison
// of the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -3235,7 +3235,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if ((sig_x.w[1] > sig_y.w[1]
|| (sig_x.w[1] == sig_y.w[1] && sig_x.w[0] > sig_y.w[0]))
@@ -3265,7 +3265,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -3285,7 +3285,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -3315,7 +3315,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -3337,7 +3337,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -3367,7 +3367,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -3410,9 +3410,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -3428,9 +3428,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -3443,7 +3443,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -3474,7 +3474,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison
+ // if exponents are the same, then we have a simple comparison
// of the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -3483,7 +3483,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if ((sig_x.w[1] > sig_y.w[1]
|| (sig_x.w[1] == sig_y.w[1] && sig_x.w[0] > sig_y.w[0]))
@@ -3513,7 +3513,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -3533,7 +3533,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -3563,7 +3563,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -3585,7 +3585,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -3659,9 +3659,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -3677,9 +3677,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -3692,7 +3692,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -3723,7 +3723,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison
+ // if exponents are the same, then we have a simple comparison
// of the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -3732,7 +3732,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if ((sig_x.w[1] > sig_y.w[1]
|| (sig_x.w[1] == sig_y.w[1] && sig_x.w[0] > sig_y.w[0]))
@@ -3762,7 +3762,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -3782,7 +3782,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -3812,7 +3812,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -3863,7 +3863,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -3906,9 +3906,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -3924,9 +3924,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -3939,7 +3939,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -3970,7 +3970,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison
+ // if exponents are the same, then we have a simple comparison
// of the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -3979,7 +3979,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if ((sig_x.w[1] > sig_y.w[1]
|| (sig_x.w[1] == sig_y.w[1] && sig_x.w[0] > sig_y.w[0]))
@@ -4009,7 +4009,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -4029,7 +4029,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -4058,7 +4058,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -4080,7 +4080,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_y);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_x.w[1]
&& (sig_n_prime192.w[0] == sig_x.w[0])) {
@@ -4110,7 +4110,7 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (int,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 1
if (((x.w[1] & MASK_NAN) == MASK_NAN)
|| ((y.w[1] & MASK_NAN) == MASK_NAN)) {
@@ -4155,9 +4155,9 @@ sig_x.w[0] = x.w[0];
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF X IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_x.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_x.w[1] == 0x0001ed09bead87c0ull)
@@ -4173,9 +4173,9 @@ sig_y.w[1] = y.w[1] & 0x0001ffffffffffffull;
sig_y.w[0] = y.w[0];
// CHECK IF Y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((sig_y.w[1] > 0x0001ed09bead87c0ull)
|| ((sig_y.w[1] == 0x0001ed09bead87c0ull)
@@ -4188,7 +4188,7 @@ else
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || ((sig_x.w[1] == 0) && (sig_x.w[0] == 0))) {
@@ -4220,7 +4220,7 @@ if (((x.w[1] ^ y.w[1]) & MASK_SIGN) == MASK_SIGN) {
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison
+ // if exponents are the same, then we have a simple comparison
// of the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -4229,7 +4229,7 @@ if (exp_y == exp_x) {
MASK_SIGN));
BID_RETURN (res);
}
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x.w[1] >= sig_y.w[1] && sig_x.w[0] >= sig_y.w[0]
&& exp_x > exp_y) {
@@ -4257,7 +4257,7 @@ if (diff > 0) { // to simplify the loop below,
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -4277,7 +4277,7 @@ if (diff > 0) { // to simplify the loop below,
//else { //128 by 64 bit multiply -> 192 bits
__mul_64x128_to192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -4307,7 +4307,7 @@ if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
diff --git a/libgcc/config/libbid/bid128_div.c b/libgcc/config/libbid/bid128_div.c
index 17350f1..925bf14 100644
--- a/libgcc/config/libbid/bid128_div.c
+++ b/libgcc/config/libbid/bid128_div.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -66,9 +66,9 @@ if ((x.w[1] & 0x7c00000000000000ull) == 0x7c00000000000000ull) {
}
// x is Infinity?
if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) {
- // check if y is Inf.
+ // check if y is Inf.
if (((y.w[1] & 0x7c00000000000000ull) == 0x7800000000000000ull))
- // return NaN
+ // return NaN
{
#ifdef SET_STATUS_FLAGS
__set_status_flags (pfpsf, INVALID_EXCEPTION);
@@ -79,7 +79,7 @@ if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) {
}
// y is NaN?
if (((y.w[1] & 0x7c00000000000000ull) != 0x7c00000000000000ull))
- // return NaN
+ // return NaN
{
// return +/-Inf
res.w[1] = ((x.w[1] ^ y.w[1]) & 0x8000000000000000ull) |
@@ -525,7 +525,7 @@ if ((x & NAN_MASK64) == NAN_MASK64) {
if (((x) & 0x7800000000000000ull) == 0x7800000000000000ull) {
// check if y is Inf.
if ((((y) & 0x7c00000000000000ull) == 0x7800000000000000ull))
- // return NaN
+ // return NaN
{
#ifdef SET_STATUS_FLAGS
__set_status_flags (pfpsf, INVALID_EXCEPTION);
@@ -984,7 +984,7 @@ if ((x & NAN_MASK64) == NAN_MASK64) {
if ((x & 0x7800000000000000ull) == 0x7800000000000000ull) {
// check if y is Inf.
if (((y.w[1] & 0x7c00000000000000ull) == 0x7800000000000000ull))
- // return NaN
+ // return NaN
{
#ifdef SET_STATUS_FLAGS
__set_status_flags (pfpsf, INVALID_EXCEPTION);
@@ -1432,9 +1432,9 @@ if ((x.w[1] & 0x7c00000000000000ull) == 0x7c00000000000000ull) {
}
// x is Infinity?
if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) {
- // check if y is Inf.
+ // check if y is Inf.
if (((y & 0x7c00000000000000ull) == 0x7800000000000000ull))
- // return NaN
+ // return NaN
{
#ifdef SET_STATUS_FLAGS
__set_status_flags (pfpsf, INVALID_EXCEPTION);
@@ -1445,7 +1445,7 @@ if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) {
}
// y is NaN?
if (((y & 0x7c00000000000000ull) != 0x7c00000000000000ull))
- // return NaN
+ // return NaN
{
// return +/-Inf
res.w[1] = ((x.w[1] ^ y) & 0x8000000000000000ull) |
diff --git a/libgcc/config/libbid/bid128_fma.c b/libgcc/config/libbid/bid128_fma.c
index cbcf225..8ca912a 100644
--- a/libgcc/config/libbid/bid128_fma.c
+++ b/libgcc/config/libbid/bid128_fma.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -22,9 +22,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
/*****************************************************************************
- *
+ *
* BID128 fma x * y + z
- *
+ *
****************************************************************************/
#include "bid_internal.h"
@@ -45,9 +45,9 @@ rounding_correction (unsigned int rnd_mode,
UINT64 C_hi, C_lo;
// general correction from RN to RA, RM, RP, RZ
- // Note: if the result is negative, then is_inexact_lt_midpoint,
- // is_inexact_gt_midpoint, is_midpoint_lt_even, and is_midpoint_gt_even
- // have to be considered as if determined for the absolute value of the
+ // Note: if the result is negative, then is_inexact_lt_midpoint,
+ // is_inexact_gt_midpoint, is_midpoint_lt_even, and is_midpoint_gt_even
+ // have to be considered as if determined for the absolute value of the
// result (so they seem to be reversed)
if (is_inexact_lt_midpoint || is_inexact_gt_midpoint ||
@@ -60,10 +60,10 @@ rounding_correction (unsigned int rnd_mode,
C_hi = res.w[1] & MASK_COEFF;
C_lo = res.w[0];
if ((!sign && ((rnd_mode == ROUNDING_UP && is_inexact_lt_midpoint) ||
- ((rnd_mode == ROUNDING_TIES_AWAY || rnd_mode == ROUNDING_UP) &&
- is_midpoint_gt_even))) ||
+ ((rnd_mode == ROUNDING_TIES_AWAY || rnd_mode == ROUNDING_UP) &&
+ is_midpoint_gt_even))) ||
(sign && ((rnd_mode == ROUNDING_DOWN && is_inexact_lt_midpoint) ||
- ((rnd_mode == ROUNDING_TIES_AWAY || rnd_mode == ROUNDING_DOWN) &&
+ ((rnd_mode == ROUNDING_TIES_AWAY || rnd_mode == ROUNDING_DOWN) &&
is_midpoint_gt_even)))) {
// C = C + 1
C_lo = C_lo + 1;
@@ -85,7 +85,7 @@ rounding_correction (unsigned int rnd_mode,
if (C_lo == 0xffffffffffffffffull)
C_hi--;
// check if we crossed into the lower decade
- if (C_hi == 0x0000314dc6448d93ull && C_lo == 0x38c15b09ffffffffull) {
+ if (C_hi == 0x0000314dc6448d93ull && C_lo == 0x38c15b09ffffffffull) {
// C = 10^33 - 1
if (exp > 0) {
C_hi = 0x0001ed09bead87c0ull; // 10^34 - 1
@@ -304,10 +304,10 @@ add_and_round (int q3,
__mul_128x128_to_256 (R256, P128, C3);
} else if (scale <= 38) { // 10^scale fits in 128 bits
__mul_128x128_to_256 (R256, ten2k128[scale - 20], C3);
- } else if (scale <= 57) { // 39 <= scale <= 57
+ } else if (scale <= 57) { // 39 <= scale <= 57
// 10^scale fits in 192 bits but C3 * 10^scale fits in 223 or 230 bits
- // (10^67 has 223 bits; 10^69 has 230 bits);
- // must split the computation:
+ // (10^67 has 223 bits; 10^69 has 230 bits);
+ // must split the computation:
// 10^scale * C3 = 10*38 * 10^(scale-38) * C3 where 10^38 takes 127
// bits and so 10^(scale-38) * C3 fits in 128 bits with certainty
// Note that 1 <= scale - 38 <= 19 => 10^(scale-38) fits in 64 bits
@@ -317,21 +317,21 @@ add_and_round (int q3,
} else { // 58 <= scale <= 66
// 10^scale takes between 193 and 220 bits,
// and C3 * 10^scale fits in 223 bits (10^67/10^69 has 223/230 bits)
- // must split the computation:
+ // must split the computation:
// 10^scale * C3 = 10*38 * 10^(scale-38) * C3 where 10^38 takes 127
- // bits and so 10^(scale-38) * C3 fits in 128 bits with certainty
+ // bits and so 10^(scale-38) * C3 fits in 128 bits with certainty
// Note that 20 <= scale - 38 <= 30 => 10^(scale-38) fits in 128 bits
// Calculate first 10^(scale-38) * C3, which fits in 128 bits; because
// 10^(scale-38) takes more than 64 bits, C3 will take less than 64
__mul_64x128_to_128 (R128, C3.w[0], ten2k128[scale - 58]);
- // now calculate 10*38 * 10^(scale-38) * C3
+ // now calculate 10*38 * 10^(scale-38) * C3
__mul_128x128_to_256 (R256, R128, ten2k128[18]);
}
- // C3 * 10^scale is now in R256
+ // C3 * 10^scale is now in R256
- // for Cases (15), (16), (17) C4 > C3 * 10^scale because C4 has at least
- // one extra digit; for Cases (2), (3), (4), (5), or (6) any order is
- // possible
+ // for Cases (15), (16), (17) C4 > C3 * 10^scale because C4 has at least
+ // one extra digit; for Cases (2), (3), (4), (5), or (6) any order is
+ // possible
// add/subtract C4 and C3 * 10^scale; the exponent is e4
if (p_sign == z_sign) { // R256 = C4 + R256
// calculate R256 = C4 + C3 * 10^scale = C4 + R256 which is exact,
@@ -342,23 +342,23 @@ add_and_round (int q3,
// R256 = C3 * 10^scale - C4 = R256 - C4 which is exact,
// but may require rounding
- // compare first R256 = C3 * 10^scale and C4
+ // compare first R256 = C3 * 10^scale and C4
if (R256.w[3] > C4.w[3] || (R256.w[3] == C4.w[3] && R256.w[2] > C4.w[2]) ||
(R256.w[3] == C4.w[3] && R256.w[2] == C4.w[2] && R256.w[1] > C4.w[1]) ||
(R256.w[3] == C4.w[3] && R256.w[2] == C4.w[2] && R256.w[1] == C4.w[1] &&
R256.w[0] >= C4.w[0])) { // C3 * 10^scale >= C4
// calculate R256 = C3 * 10^scale - C4 = R256 - C4, which is exact,
- // but may require rounding
+ // but may require rounding
sub256 (R256, C4, &R256);
- // flip p_sign too, because the result has the sign of z
+ // flip p_sign too, because the result has the sign of z
p_sign = z_sign;
} else { // if C4 > C3 * 10^scale
// calculate R256 = C4 - C3 * 10^scale = C4 - R256, which is exact,
- // but may require rounding
+ // but may require rounding
sub256 (C4, R256, &R256);
}
// if the result is pure zero, the sign depends on the rounding mode
- // (x*y and z had opposite signs)
+ // (x*y and z had opposite signs)
if (R256.w[3] == 0x0ull && R256.w[2] == 0x0ull &&
R256.w[1] == 0x0ull && R256.w[0] == 0x0ull) {
if (rnd_mode != ROUNDING_DOWN)
@@ -368,7 +368,7 @@ add_and_round (int q3,
// the exponent is max (e4, expmin)
if (e4 < -6176)
e4 = expmin;
- // assemble result
+ // assemble result
res.w[1] = p_sign | ((UINT64) (e4 + 6176) << 49);
res.w[0] = 0x0;
*ptrres = res;
@@ -424,7 +424,7 @@ add_and_round (int q3,
e4 = e4 + x0 + incr_exp;
if (rnd_mode != ROUNDING_TO_NEAREST) {
// for RM, RP, RZ, RA apply correction in order to determine tininess
- // but do not save the result; apply the correction to
+ // but do not save the result; apply the correction to
// (-1)^p_sign * significand * 10^0
P128.w[1] = p_sign | 0x3040000000000000ull | R128.w[1];
P128.w[0] = R128.w[0];
@@ -442,7 +442,7 @@ add_and_round (int q3,
}
// at this point we have the result rounded with unbounded exponent in
// res and we know its tininess:
- // res = (-1)^p_sign * significand * 10^e4,
+ // res = (-1)^p_sign * significand * 10^e4,
// where q (significand) = ind <= p34
// Note: res is correct only if expmin <= e4 <= expmax
@@ -480,7 +480,7 @@ add_and_round (int q3,
} else if (x0 == ind) { // 1 <= x0 = ind <= p34 = 34
// this is <, =, or > 1/2 ulp
// compare the ind-digit value in the significand of res with
- // 1/2 ulp = 5*10^(ind-1), i.e. determine whether it is
+ // 1/2 ulp = 5*10^(ind-1), i.e. determine whether it is
// less than, equal to, or greater than 1/2 ulp (significand of res)
R128.w[1] = res.w[1] & MASK_COEFF;
R128.w[0] = res.w[0];
@@ -496,12 +496,12 @@ add_and_round (int q3,
is_inexact_gt_midpoint = 1;
}
} else { // if (ind <= 38) {
- if (R128.w[1] < midpoint128[ind - 20].w[1] ||
- (R128.w[1] == midpoint128[ind - 20].w[1] &&
+ if (R128.w[1] < midpoint128[ind - 20].w[1] ||
+ (R128.w[1] == midpoint128[ind - 20].w[1] &&
R128.w[0] < midpoint128[ind - 20].w[0])) { // < 1/2 ulp
lt_half_ulp = 1;
is_inexact_lt_midpoint = 1;
- } else if (R128.w[1] == midpoint128[ind - 20].w[1] &&
+ } else if (R128.w[1] == midpoint128[ind - 20].w[1] &&
R128.w[0] == midpoint128[ind - 20].w[0]) { // = 1/2 ulp
eq_half_ulp = 1;
is_midpoint_gt_even = 1;
@@ -550,7 +550,7 @@ add_and_round (int q3,
res.w[1] =
p_sign | ((UINT64) (e4 + 6176) << 49) | (res.w[1] & MASK_COEFF);
// avoid a double rounding error
- if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
+ if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
is_midpoint_lt_even) { // double rounding error upward
// res = res - 1
res.w[0]--;
@@ -562,7 +562,7 @@ add_and_round (int q3,
// is not possible in Cases (2)-(6) or (15)-(17) which may get here
is_midpoint_lt_even = 0;
is_inexact_lt_midpoint = 1;
- } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
+ } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
is_midpoint_gt_even) { // double rounding error downward
// res = res + 1
res.w[0]++;
@@ -572,7 +572,7 @@ add_and_round (int q3,
is_inexact_gt_midpoint = 1;
} else if (!is_midpoint_lt_even && !is_midpoint_gt_even &&
!is_inexact_lt_midpoint && !is_inexact_gt_midpoint) {
- // if this second rounding was exact the result may still be
+ // if this second rounding was exact the result may still be
// inexact because of the first rounding
if (is_inexact_gt_midpoint0 || is_midpoint_lt_even0) {
is_inexact_gt_midpoint = 1;
@@ -677,7 +677,7 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
UINT256 R256;
// the following are based on the table of special cases for fma; the NaN
- // behavior is similar to that of the IA-64 Architecture fma
+ // behavior is similar to that of the IA-64 Architecture fma
// identify cases where at least one operand is NaN
@@ -725,14 +725,14 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
z.w[1] = z.w[1] & 0xffffc00000000000ull;
z.w[0] = 0x0ull;
}
- if ((z.w[1] & MASK_SNAN) == MASK_SNAN) { // z is SNAN
- // set invalid flag
+ if ((z.w[1] & MASK_SNAN) == MASK_SNAN) { // z is SNAN
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return quiet (z)
+ // return quiet (z)
res.w[1] = z.w[1] & 0xfc003fffffffffffull; // clear out also G[6]-G[16]
res.w[0] = z.w[0];
- } else { // z is QNaN
- // return z
+ } else { // z is QNaN
+ // return z
res.w[1] = z.w[1] & 0xfc003fffffffffffull; // clear out G[6]-G[16]
res.w[0] = z.w[0];
// if x = SNaN signal invalid exception
@@ -756,14 +756,14 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
x.w[1] = x.w[1] & 0xffffc00000000000ull;
x.w[0] = 0x0ull;
}
- if ((x.w[1] & MASK_SNAN) == MASK_SNAN) { // x is SNAN
- // set invalid flag
+ if ((x.w[1] & MASK_SNAN) == MASK_SNAN) { // x is SNAN
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return quiet (x)
+ // return quiet (x)
res.w[1] = x.w[1] & 0xfc003fffffffffffull; // clear out also G[6]-G[16]
res.w[0] = x.w[0];
- } else { // x is QNaN
- // return x
+ } else { // x is QNaN
+ // return x
res.w[1] = x.w[1] & 0xfc003fffffffffffull; // clear out G[6]-G[16]
res.w[0] = x.w[0];
}
@@ -795,7 +795,7 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
// x is non-canonical if coefficient is larger than 10^34 -1
C1.w[1] = 0;
C1.w[0] = 0;
- } else { // canonical
+ } else { // canonical
;
}
}
@@ -809,7 +809,7 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
// non-canonical
y_exp = (y.w[1] << 2) & MASK_EXP; // biased and shifted left 49 bits
C2.w[1] = 0; // significand high
- C2.w[0] = 0; // significand low
+ C2.w[0] = 0; // significand low
} else { // G0_G1 != 11
y_exp = y.w[1] & MASK_EXP; // biased and shifted left 49 bits
if (C2.w[1] > 0x0001ed09bead87c0ull ||
@@ -832,7 +832,7 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
// non-canonical
z_exp = (z.w[1] << 2) & MASK_EXP; // biased and shifted left 49 bits
C3.w[1] = 0; // significand high
- C3.w[0] = 0; // significand low
+ C3.w[0] = 0; // significand low
} else { // G0_G1 != 11
z_exp = z.w[1] & MASK_EXP; // biased and shifted left 49 bits
if (C3.w[1] > 0x0001ed09bead87c0ull ||
@@ -873,7 +873,7 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
res.w[1] = z_sign | MASK_INF;
res.w[0] = 0x0;
} else {
- // return QNaN Indefinite
+ // return QNaN Indefinite
res.w[1] = 0x7c00000000000000ull;
res.w[0] = 0x0000000000000000ull;
// set invalid flag
@@ -1079,7 +1079,7 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
if (scale == 0) {
res.w[1] = z.w[1]; // & MASK_COEFF, which is redundant
res.w[0] = z.w[0];
- } else if (q3 <= 19) { // z fits in 64 bits
+ } else if (q3 <= 19) { // z fits in 64 bits
if (scale <= 19) { // 10^scale fits in 64 bits
// 64 x 64 C3.w[0] * ten2k64[scale]
__mul_64x64_to_128MACH (res, C3.w[0], ten2k64[scale]);
@@ -1087,7 +1087,7 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
// 64 x 128 C3.w[0] * ten2k128[scale - 20]
__mul_128x64_to_128 (res, C3.w[0], ten2k128[scale - 20]);
}
- } else { // z fits in 128 bits, but 10^scale must fit in 64 bits
+ } else { // z fits in 128 bits, but 10^scale must fit in 64 bits
// 64 x 128 ten2k64[scale] * C3
__mul_128x64_to_128 (res, ten2k64[scale], C3);
}
@@ -1104,8 +1104,8 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
} else {
; // continue with x = f, y = f, z = 0 or x = f, y = f, z = f
}
- e1 = (x_exp >> 49) - 6176; // unbiased exponent of x
- e2 = (y_exp >> 49) - 6176; // unbiased exponent of y
+ e1 = (x_exp >> 49) - 6176; // unbiased exponent of x
+ e2 = (y_exp >> 49) - 6176; // unbiased exponent of y
e3 = (z_exp >> 49) - 6176; // unbiased exponent of z
e4 = e1 + e2; // unbiased exponent of the exact x * y
@@ -1294,10 +1294,10 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
e4 = e4 + 1;
if (q4 + e4 == expmin + p34) *pfpsf |= (INEXACT_EXCEPTION | UNDERFLOW_EXCEPTION);
}
- // res is now the coefficient of the result rounded to the destination
+ // res is now the coefficient of the result rounded to the destination
// precision, with unbounded exponent; the exponent is e4; q4=digits(res)
} else { // if (q4 <= p34)
- // C4 * 10^e4 is the result rounded to the destination precision, with
+ // C4 * 10^e4 is the result rounded to the destination precision, with
// unbounded exponent (which is exact)
if ((q4 + e4 <= p34 + expmax) && (e4 > expmax)) {
@@ -1322,8 +1322,8 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
res.w[1] = C4.w[1];
res.w[0] = C4.w[0];
}
- // res is the coefficient of the result rounded to the destination
- // precision, with unbounded exponent (it has q4 digits); the exponent
+ // res is the coefficient of the result rounded to the destination
+ // precision, with unbounded exponent (it has q4 digits); the exponent
// is e4 (exact result)
}
@@ -1396,7 +1396,7 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
}
}
}
- e4 = e4 + x0; // expmin
+ e4 = e4 + x0; // expmin
} else if (x0 == q4) {
// the second rounding is for 0.d(0)d(1)...d(q4-1) * 10^emin
// determine relationship with 1/2 ulp
@@ -1412,12 +1412,12 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
is_inexact_gt_midpoint = 1;
}
} else { // if (q4 <= 34)
- if (res.w[1] < midpoint128[q4 - 20].w[1] ||
- (res.w[1] == midpoint128[q4 - 20].w[1] &&
+ if (res.w[1] < midpoint128[q4 - 20].w[1] ||
+ (res.w[1] == midpoint128[q4 - 20].w[1] &&
res.w[0] < midpoint128[q4 - 20].w[0])) { // < 1/2 ulp
lt_half_ulp = 1;
is_inexact_lt_midpoint = 1;
- } else if (res.w[1] == midpoint128[q4 - 20].w[1] &&
+ } else if (res.w[1] == midpoint128[q4 - 20].w[1] &&
res.w[0] == midpoint128[q4 - 20].w[0]) { // = 1/2 ulp
eq_half_ulp = 1;
is_midpoint_gt_even = 1;
@@ -1444,7 +1444,7 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
is_inexact_lt_midpoint = 1;
}
// avoid a double rounding error
- if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
+ if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
is_midpoint_lt_even) { // double rounding error upward
// res = res - 1
res.w[0]--;
@@ -1456,7 +1456,7 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
// not possible for f * f + 0
is_midpoint_lt_even = 0;
is_inexact_lt_midpoint = 1;
- } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
+ } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
is_midpoint_gt_even) { // double rounding error downward
// res = res + 1
res.w[0]++;
@@ -1466,7 +1466,7 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
is_inexact_gt_midpoint = 1;
} else if (!is_midpoint_lt_even && !is_midpoint_gt_even &&
!is_inexact_lt_midpoint && !is_inexact_gt_midpoint) {
- // if this second rounding was exact the result may still be
+ // if this second rounding was exact the result may still be
// inexact because of the first rounding
if (is_inexact_gt_midpoint0 || is_midpoint_lt_even0) {
is_inexact_gt_midpoint = 1;
@@ -1591,15 +1591,15 @@ bid128_ext_fma (int *ptr_is_midpoint_lt_even,
; // leave res unchanged
} else if (q4 <= 19) { // x * y fits in 64 bits
if (scale <= 19) { // 10^scale fits in 64 bits
- // 64 x 64 C3.w[0] * ten2k64[scale]
+ // 64 x 64 C3.w[0] * ten2k64[scale]
__mul_64x64_to_128MACH (res, C3.w[0], ten2k64[scale]);
- } else { // 10^scale fits in 128 bits
+ } else { // 10^scale fits in 128 bits
// 64 x 128 C3.w[0] * ten2k128[scale - 20]
__mul_128x64_to_128 (res, C3.w[0], ten2k128[scale - 20]);
}
res.w[1] = p_sign | (p_exp & MASK_EXP) | res.w[1];
} else { // x * y fits in 128 bits, but 10^scale must fit in 64 bits
- // 64 x 128 ten2k64[scale] * C3
+ // 64 x 128 ten2k64[scale] * C3
__mul_128x64_to_128 (res, ten2k64[scale], C3);
res.w[1] = p_sign | (p_exp & MASK_EXP) | res.w[1];
}
@@ -1706,7 +1706,7 @@ delta_ge_zero:
res.w[1] = z_sign | ((UINT64) (e3 + 6176) << 49) | C3.w[1];
res.w[0] = C3.w[0];
}
-
+
// use the following to avoid double rounding errors when operating on
// mixed formats in rounding to nearest, and for correcting the result
// if not rounding to nearest
@@ -1727,7 +1727,7 @@ delta_ge_zero:
if (q4 == 1) {
R64 = C4.w[0];
} else {
- // if q4 > 1 then truncate C4 from q4 digits to 1 digit;
+ // if q4 > 1 then truncate C4 from q4 digits to 1 digit;
// x = q4-1, 1 <= x <= 67 and check if this operation is exact
if (q4 <= 18) { // 2 <= q4 <= 18
round64_2_18 (q4, q4 - 1, C4.w[0], &R64, &incr_exp,
@@ -1843,9 +1843,9 @@ delta_ge_zero:
// endif
// endif
// endif
- // endif
- if ((e3 == expmin && (q3 + scale) < p34) ||
- (e3 == expmin && (q3 + scale) == p34 &&
+ // endif
+ if ((e3 == expmin && (q3 + scale) < p34) ||
+ (e3 == expmin && (q3 + scale) == p34 &&
(res.w[1] & MASK_COEFF) == 0x0000314dc6448d93ull && // 10^33_high
res.w[0] == 0x38c15b0a00000000ull && // 10^33_low
z_sign != p_sign)) {
@@ -1892,7 +1892,7 @@ delta_ge_zero:
e3 = e3 - scale;
// now z_sign, z_exp, and res correspond to a z scaled to p34 = 34 digits
- // determine whether x * y is less than, equal to, or greater than
+ // determine whether x * y is less than, equal to, or greater than
// 1/2 ulp (z)
if (q4 <= 19) {
if (C4.w[0] < midpoint64[q4 - 1]) { // < 1/2 ulp
@@ -1903,46 +1903,46 @@ delta_ge_zero:
gt_half_ulp = 1;
}
} else if (q4 <= 38) {
- if (C4.w[2] == 0 && (C4.w[1] < midpoint128[q4 - 20].w[1] ||
- (C4.w[1] == midpoint128[q4 - 20].w[1] &&
+ if (C4.w[2] == 0 && (C4.w[1] < midpoint128[q4 - 20].w[1] ||
+ (C4.w[1] == midpoint128[q4 - 20].w[1] &&
C4.w[0] < midpoint128[q4 - 20].w[0]))) { // < 1/2 ulp
lt_half_ulp = 1;
- } else if (C4.w[2] == 0 && C4.w[1] == midpoint128[q4 - 20].w[1] &&
+ } else if (C4.w[2] == 0 && C4.w[1] == midpoint128[q4 - 20].w[1] &&
C4.w[0] == midpoint128[q4 - 20].w[0]) { // = 1/2 ulp
eq_half_ulp = 1;
} else { // > 1/2 ulp
gt_half_ulp = 1;
}
} else if (q4 <= 58) {
- if (C4.w[3] == 0 && (C4.w[2] < midpoint192[q4 - 39].w[2] ||
- (C4.w[2] == midpoint192[q4 - 39].w[2] &&
- C4.w[1] < midpoint192[q4 - 39].w[1]) ||
- (C4.w[2] == midpoint192[q4 - 39].w[2] &&
- C4.w[1] == midpoint192[q4 - 39].w[1] &&
+ if (C4.w[3] == 0 && (C4.w[2] < midpoint192[q4 - 39].w[2] ||
+ (C4.w[2] == midpoint192[q4 - 39].w[2] &&
+ C4.w[1] < midpoint192[q4 - 39].w[1]) ||
+ (C4.w[2] == midpoint192[q4 - 39].w[2] &&
+ C4.w[1] == midpoint192[q4 - 39].w[1] &&
C4.w[0] < midpoint192[q4 - 39].w[0]))) { // < 1/2 ulp
lt_half_ulp = 1;
- } else if (C4.w[3] == 0 && C4.w[2] == midpoint192[q4 - 39].w[2] &&
- C4.w[1] == midpoint192[q4 - 39].w[1] &&
+ } else if (C4.w[3] == 0 && C4.w[2] == midpoint192[q4 - 39].w[2] &&
+ C4.w[1] == midpoint192[q4 - 39].w[1] &&
C4.w[0] == midpoint192[q4 - 39].w[0]) { // = 1/2 ulp
eq_half_ulp = 1;
} else { // > 1/2 ulp
gt_half_ulp = 1;
}
} else {
- if (C4.w[3] < midpoint256[q4 - 59].w[3] ||
- (C4.w[3] == midpoint256[q4 - 59].w[3] &&
- C4.w[2] < midpoint256[q4 - 59].w[2]) ||
- (C4.w[3] == midpoint256[q4 - 59].w[3] &&
- C4.w[2] == midpoint256[q4 - 59].w[2] &&
- C4.w[1] < midpoint256[q4 - 59].w[1]) ||
- (C4.w[3] == midpoint256[q4 - 59].w[3] &&
- C4.w[2] == midpoint256[q4 - 59].w[2] &&
- C4.w[1] == midpoint256[q4 - 59].w[1] &&
+ if (C4.w[3] < midpoint256[q4 - 59].w[3] ||
+ (C4.w[3] == midpoint256[q4 - 59].w[3] &&
+ C4.w[2] < midpoint256[q4 - 59].w[2]) ||
+ (C4.w[3] == midpoint256[q4 - 59].w[3] &&
+ C4.w[2] == midpoint256[q4 - 59].w[2] &&
+ C4.w[1] < midpoint256[q4 - 59].w[1]) ||
+ (C4.w[3] == midpoint256[q4 - 59].w[3] &&
+ C4.w[2] == midpoint256[q4 - 59].w[2] &&
+ C4.w[1] == midpoint256[q4 - 59].w[1] &&
C4.w[0] < midpoint256[q4 - 59].w[0])) { // < 1/2 ulp
lt_half_ulp = 1;
- } else if (C4.w[3] == midpoint256[q4 - 59].w[3] &&
- C4.w[2] == midpoint256[q4 - 59].w[2] &&
- C4.w[1] == midpoint256[q4 - 59].w[1] &&
+ } else if (C4.w[3] == midpoint256[q4 - 59].w[3] &&
+ C4.w[2] == midpoint256[q4 - 59].w[2] &&
+ C4.w[1] == midpoint256[q4 - 59].w[1] &&
C4.w[0] == midpoint256[q4 - 59].w[0]) { // = 1/2 ulp
eq_half_ulp = 1;
} else { // > 1/2 ulp
@@ -1962,7 +1962,7 @@ delta_ge_zero:
if (res.w[0] == 0x0ull)
res.w[1]++;
// check for rounding overflow, when coeff == 10^34
- if ((res.w[1] & MASK_COEFF) == 0x0001ed09bead87c0ull &&
+ if ((res.w[1] & MASK_COEFF) == 0x0001ed09bead87c0ull &&
res.w[0] == 0x378d8e6400000000ull) { // coefficient = 10^34
e3 = e3 + 1;
// coeff = 10^33
@@ -1978,7 +1978,7 @@ delta_ge_zero:
is_inexact_gt_midpoint = 1; // if (z_sign), as if for absolute value
}
} else { // if (eq_half_ulp && !(res.w[0] & 0x01))
- // leave unchanged
+ // leave unchanged
res.w[1] = z_sign | (z_exp & MASK_EXP) | res.w[1];
is_midpoint_gt_even = 1; // if (z_sign), as if for absolute value
}
@@ -2007,7 +2007,7 @@ delta_ge_zero:
}
} else { // if (p_sign != z_sign)
// consider two cases, because C3 * 10^scale = 10^33 is a special case
- if (res.w[1] != 0x0000314dc6448d93ull ||
+ if (res.w[1] != 0x0000314dc6448d93ull ||
res.w[0] != 0x38c15b0a00000000ull) { // C3 * 10^scale != 10^33
if (lt_half_ulp) {
res.w[1] = z_sign | (z_exp & MASK_EXP) | res.w[1];
@@ -2065,7 +2065,7 @@ delta_ge_zero:
} else { // if C3 * 10^scale = 10^33
e3 = (z_exp >> 49) - 6176;
if (e3 > expmin) {
- // the result is exact if exp > expmin and C4 = d*10^(q4-1),
+ // the result is exact if exp > expmin and C4 = d*10^(q4-1),
// where d = 1, 2, 3, ..., 9; it could be tiny too, but exact
if (q4 == 1) {
// if q4 = 1 the result is exact
@@ -2076,7 +2076,7 @@ delta_ge_zero:
e3 = e3 - 1;
res.w[1] = z_sign | (z_exp & MASK_EXP) | res.w[1];
} else {
- // if q4 > 1 then truncate C4 from q4 digits to 1 digit;
+ // if q4 > 1 then truncate C4 from q4 digits to 1 digit;
// x = q4-1, 1 <= x <= 67 and check if this operation is exact
if (q4 <= 18) { // 2 <= q4 <= 18
round64_2_18 (q4, q4 - 1, C4.w[0], &R64, &incr_exp,
@@ -2121,7 +2121,7 @@ delta_ge_zero:
z_sign | (z_exp & MASK_EXP) | 0x0001ed09bead87c0ull;
res.w[0] = 0x378d8e6400000000ull - R64;
} else {
- // We want R64 to be the top digit of C4, but we actually
+ // We want R64 to be the top digit of C4, but we actually
// obtained (C4 * 10^(-q4+1))RN; a correction may be needed,
// because the top digit is (C4 * 10^(-q4+1))RZ
// however, if incr_exp = 1 then R64 = 10 with certainty
@@ -2200,7 +2200,7 @@ delta_ge_zero:
// tininess is C4 > 050...0 [q4 digits] which is met because
// the msd of C4 is not zero)
// the result is tiny and inexact in all rounding modes;
- // it is either 100...0 or 0999...9 (use lt_half_ulp, eq_half_ulp,
+ // it is either 100...0 or 0999...9 (use lt_half_ulp, eq_half_ulp,
// gt_half_ulp to calculate)
// if (lt_half_ulp || eq_half_ulp) res = 10^33 stays unchanged
@@ -2259,14 +2259,14 @@ delta_ge_zero:
if ((q3 <= delta && delta < p34 && p34 < delta + q4) || // Case (2)
(delta < q3 && p34 < delta + q4)) { // Case (4)
// round first the sum x * y + z with unbounded exponent
- // scale C3 up by scale = p34 - q3, 1 <= scale <= p34-1,
+ // scale C3 up by scale = p34 - q3, 1 <= scale <= p34-1,
// 1 <= scale <= 33
// calculate res = C3 * 10^scale
scale = p34 - q3;
x0 = delta + q4 - p34;
} else if (delta + q4 < q3) { // Case (6)
// make Case (6) look like Case (3) or Case (5) with scale = 0
- // by scaling up C4 by 10^(q3 - delta - q4)
+ // by scaling up C4 by 10^(q3 - delta - q4)
scale = q3 - delta - q4; // 1 <= scale <= 33
if (q4 <= 19) { // 1 <= scale <= 19; C4 fits in 64 bits
if (scale <= 19) { // 10^scale fits in 64 bits
@@ -2285,7 +2285,7 @@ delta_ge_zero:
// e4 does not need adjustment, as it is not used from this point on
scale = 0;
x0 = 0;
- // now Case (6) looks like Case (3) or Case (5) with scale = 0
+ // now Case (6) looks like Case (3) or Case (5) with scale = 0
} else { // if Case (3) or Case (5)
// Note: Case (3) is similar to Case (2), but scale differs and the
// result is exact, unless it is tiny (so x0 = 0 when calculating the
@@ -2395,12 +2395,12 @@ delta_ge_zero:
// R256.w[3] and R256.w[2] are always 0
if (incr_exp) {
// R256 = 10^(q4-x0), 1 <= q4 - x0 <= q4 - 25, 1 <= q4 - x0 <= 43
- if (q4 - x0 <= 19) { // 1 <= q4 - x0 <= 19
+ if (q4 - x0 <= 19) { // 1 <= q4 - x0 <= 19
R256.w[0] = ten2k64[q4 - x0];
// R256.w[1] stays 0
// R256.w[2] stays 0
// R256.w[3] stays 0
- } else { // 20 <= q4 - x0 <= 33
+ } else { // 20 <= q4 - x0 <= 33
R256.w[0] = ten2k128[q4 - x0 - 20].w[0];
R256.w[1] = ten2k128[q4 - x0 - 20].w[1];
// R256.w[2] stays 0
@@ -2440,7 +2440,7 @@ delta_ge_zero:
&is_inexact_gt_midpoint);
// incr_exp is 0 with certainty in this case
// avoid a double rounding error
- if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
+ if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
is_midpoint_lt_even) { // double rounding error upward
// res = res - 1
res.w[0]--;
@@ -2452,7 +2452,7 @@ delta_ge_zero:
// not possible in Cases (2)-(6) or (15)-(17) which may get here
is_midpoint_lt_even = 0;
is_inexact_lt_midpoint = 1;
- } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
+ } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
is_midpoint_gt_even) { // double rounding error downward
// res = res + 1
res.w[0]++;
@@ -2463,7 +2463,7 @@ delta_ge_zero:
} else if (!is_midpoint_lt_even && !is_midpoint_gt_even &&
!is_inexact_lt_midpoint
&& !is_inexact_gt_midpoint) {
- // if this second rounding was exact the result may still be
+ // if this second rounding was exact the result may still be
// inexact because of the first rounding
if (is_inexact_gt_midpoint0 || is_midpoint_lt_even0) {
is_inexact_gt_midpoint = 1;
@@ -2526,7 +2526,7 @@ delta_ge_zero:
res.w[0]--;
if (res.w[0] == 0xffffffffffffffffull)
res.w[1]--;
- // if the result is pure zero, the sign depends on the rounding
+ // if the result is pure zero, the sign depends on the rounding
// mode (x*y and z had opposite signs)
if (res.w[1] == 0x0ull && res.w[0] == 0x0ull) {
if (rnd_mode != ROUNDING_DOWN)
@@ -2557,7 +2557,7 @@ delta_ge_zero:
res.w[1] = res.w[1] - R128.w[1];
if (res.w[0] > tmp64)
res.w[1]--; // borrow
- // if res < 10^33 and exp > expmin need to decrease x0 and
+ // if res < 10^33 and exp > expmin need to decrease x0 and
// increase scale by 1
if (e3 > expmin && ((res.w[1] < 0x0000314dc6448d93ull ||
(res.w[1] == 0x0000314dc6448d93ull &&
@@ -2578,7 +2578,7 @@ delta_ge_zero:
goto case2_repeat;
}
// else this is the result rounded with unbounded exponent;
- // because the result has opposite sign to that of C4 which was
+ // because the result has opposite sign to that of C4 which was
// rounded, need to change the rounding indicators
if (is_inexact_lt_midpoint) {
is_inexact_lt_midpoint = 0;
@@ -2615,7 +2615,7 @@ delta_ge_zero:
res.w[0]--;
if (res.w[0] == 0xffffffffffffffffull)
res.w[1]--;
- // if the result is pure zero, the sign depends on the rounding
+ // if the result is pure zero, the sign depends on the rounding
// mode (x*y and z had opposite signs)
if (res.w[1] == 0x0ull && res.w[0] == 0x0ull) {
if (rnd_mode != ROUNDING_DOWN)
@@ -2647,7 +2647,7 @@ delta_ge_zero:
is_tiny = 1;
}
if (((res.w[1] & 0x7fffffffffffffffull) == 0x0000314dc6448d93ull) &&
- (res.w[0] == 0x38c15b0a00000000ull) && // 10^33*10^-6176
+ (res.w[0] == 0x38c15b0a00000000ull) && // 10^33*10^-6176
(z_sign != p_sign)) is_tiny = 1;
} else if (e3 < expmin) {
// the result is tiny, so we must truncate more of res
@@ -2689,8 +2689,8 @@ delta_ge_zero:
// at this point ind >= x0; because delta >= 2 on this path, the case
// ind = x0 can occur only in Case (2) or case (3), when C3 has one
- // digit (q3 = 1) equal to 1 (C3 = 1), e3 is expmin (e3 = expmin),
- // the signs of x * y and z are opposite, and through cancellation
+ // digit (q3 = 1) equal to 1 (C3 = 1), e3 is expmin (e3 = expmin),
+ // the signs of x * y and z are opposite, and through cancellation
// the most significant decimal digit in res has the weight
// 10^(emin-1); however, it is clear that in this case the most
// significant digit is 9, so the result before rounding is
@@ -2734,7 +2734,7 @@ delta_ge_zero:
}
}
// avoid a double rounding error
- if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
+ if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
is_midpoint_lt_even) { // double rounding error upward
// res = res - 1
res.w[0]--;
@@ -2746,7 +2746,7 @@ delta_ge_zero:
// not possible in Cases (2)-(6) which may get here
is_midpoint_lt_even = 0;
is_inexact_lt_midpoint = 1;
- } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
+ } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
is_midpoint_gt_even) { // double rounding error downward
// res = res + 1
res.w[0]++;
@@ -2756,7 +2756,7 @@ delta_ge_zero:
is_inexact_gt_midpoint = 1;
} else if (!is_midpoint_lt_even && !is_midpoint_gt_even &&
!is_inexact_lt_midpoint && !is_inexact_gt_midpoint) {
- // if this second rounding was exact the result may still be
+ // if this second rounding was exact the result may still be
// inexact because of the first rounding
if (is_inexact_gt_midpoint0 || is_midpoint_lt_even0) {
is_inexact_gt_midpoint = 1;
@@ -2803,7 +2803,7 @@ delta_ge_zero:
}
// now check for significand = 10^34 (may have resulted from going
// back to case2_repeat)
- if (res.w[1] == 0x0001ed09bead87c0ull &&
+ if (res.w[1] == 0x0001ed09bead87c0ull &&
res.w[0] == 0x378d8e6400000000ull) { // if res = 10^34
res.w[1] = 0x0000314dc6448d93ull; // res = 10^33
res.w[0] = 0x38c15b0a00000000ull;
@@ -2834,15 +2834,15 @@ delta_ge_zero:
// we get here only if delta <= 1 in Cases (2), (3), (4), (5), or (6) and
// the signs of x*y and z are opposite; in these cases massive
- // cancellation can occur, so it is better to scale either C3 or C4 and
- // to perform the subtraction before rounding; rounding is performed
- // next, depending on the number of decimal digits in the result and on
+ // cancellation can occur, so it is better to scale either C3 or C4 and
+ // to perform the subtraction before rounding; rounding is performed
+ // next, depending on the number of decimal digits in the result and on
// the exponent value
// Note: overlow is not possible in this case
// this is similar to Cases (15), (16), and (17)
- if (delta + q4 < q3) { // from Case (6)
- // Case (6) with 0<= delta <= 1 is similar to Cases (15), (16), and
+ if (delta + q4 < q3) { // from Case (6)
+ // Case (6) with 0<= delta <= 1 is similar to Cases (15), (16), and
// (17) if we swap (C3, C4), (q3, q4), (e3, e4), (z_sign, p_sign)
// and call add_and_round; delta stays positive
// C4.w[3] = 0 and C4.w[2] = 0, so swap just the low part of C4 with C3
@@ -2862,8 +2862,8 @@ delta_ge_zero:
z_sign = p_sign;
p_sign = tmp_sign;
} else { // from Cases (2), (3), (4), (5)
- // In Cases (2), (3), (4), (5) with 0 <= delta <= 1 C3 has to be
- // scaled up by q4 + delta - q3; this is the same as in Cases (15),
+ // In Cases (2), (3), (4), (5) with 0 <= delta <= 1 C3 has to be
+ // scaled up by q4 + delta - q3; this is the same as in Cases (15),
// (16), and (17) if we just change the sign of delta
delta = -delta;
}
@@ -2925,7 +2925,7 @@ delta_ge_zero:
if (p_sign == z_sign) {
is_inexact_lt_midpoint = 1;
} else { // if (p_sign != z_sign)
- if (res.w[1] != 0x0000314dc6448d93ull ||
+ if (res.w[1] != 0x0000314dc6448d93ull ||
res.w[0] != 0x38c15b0a00000000ull) { // res != 10^33
is_inexact_gt_midpoint = 1;
} else { // res = 10^33 and exact is a special case
@@ -2951,12 +2951,12 @@ delta_ge_zero:
is_inexact_lt_midpoint = 1;
}
} else { // if (20 <= q3 <=34)
- if (C3.w[1] < midpoint128[q3 - 20].w[1] ||
- (C3.w[1] == midpoint128[q3 - 20].w[1] &&
+ if (C3.w[1] < midpoint128[q3 - 20].w[1] ||
+ (C3.w[1] == midpoint128[q3 - 20].w[1] &&
C3.w[0] < midpoint128[q3 - 20].w[0])) { // C3 < 1/2 ulp
// res = 10^33, unchanged
is_inexact_gt_midpoint = 1;
- } else if (C3.w[1] == midpoint128[q3 - 20].w[1] &&
+ } else if (C3.w[1] == midpoint128[q3 - 20].w[1] &&
C3.w[0] == midpoint128[q3 - 20].w[0]) { // C3 = 1/2 ulp
// res = 10^33, unchanged
is_midpoint_lt_even = 1;
@@ -2976,7 +2976,7 @@ delta_ge_zero:
res.w[0] = res.w[0] - 1;
if (res.w[0] == 0xffffffffffffffffull)
res.w[1]--;
- // if it is (10^33-1)*10^e4 then the corect result is
+ // if it is (10^33-1)*10^e4 then the corect result is
// (10^34-1)*10(e4-1)
if (res.w[1] == 0x0000314dc6448d93ull &&
res.w[0] == 0x38c15b09ffffffffull) {
@@ -3074,7 +3074,7 @@ delta_ge_zero:
(delta < p34 && p34 < q4 && q4 < delta + q3)) { // Case (12)
// round C3 to nearest to q3 - x0 digits, where x0 = e4 - e3,
- // 1 <= x0 <= q3 - 1 <= p34 - 1
+ // 1 <= x0 <= q3 - 1 <= p34 - 1
x0 = e4 - e3; // or x0 = delta + q3 - q4
if (q3 <= 18) { // 2 <= q3 <= 18
round64_2_18 (q3, x0, C3.w[0], &R64, &incr_exp,
@@ -3100,7 +3100,7 @@ delta_ge_zero:
__mul_64x128_to_128 (C3, ten2k64[1], P128);
}
e3 = e3 + x0; // this is e4
- // now add/subtract the 256-bit C4 and the new (and shorter) 128-bit C3;
+ // now add/subtract the 256-bit C4 and the new (and shorter) 128-bit C3;
// the result will have the sign of x * y; the exponent is e4
R256.w[3] = 0;
R256.w[2] = 0;
@@ -3110,7 +3110,7 @@ delta_ge_zero:
add256 (C4, R256, &R256);
} else { // if (p_sign != z_sign) { // R256 = C4 - R256
sub256 (C4, R256, &R256); // the result cannot be pure zero
- // because the result has opposite sign to that of R256 which was
+ // because the result has opposite sign to that of R256 which was
// rounded, need to change the rounding indicators
lsb = C4.w[0] & 0x01;
if (is_inexact_lt_midpoint) {
@@ -3164,16 +3164,16 @@ delta_ge_zero:
}
// determine the number of decimal digits in R256
ind = nr_digits256 (R256); // ind >= p34
- // if R256 is sum, then ind > p34; if R256 is a difference, then
+ // if R256 is sum, then ind > p34; if R256 is a difference, then
// ind >= p34; this means that we can calculate the result rounded to
// the destination precision, with unbounded exponent, starting from R256
// and using the indicators from the rounding of C3 to avoid a double
- // rounding error
+ // rounding error
if (ind < p34) {
;
} else if (ind == p34) {
- // the result rounded to the destination precision with
+ // the result rounded to the destination precision with
// unbounded exponent
// is (-1)^p_sign * R256 * 10^e4
res.w[1] = R256.w[1];
@@ -3225,7 +3225,7 @@ delta_ge_zero:
res.w[0] = R128.w[0];
// avoid a double rounding error
- if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
+ if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
is_midpoint_lt_even) { // double rounding error upward
// res = res - 1
res.w[0]--;
@@ -3238,15 +3238,15 @@ delta_ge_zero:
// (35 digits in all), possibly followed by a number of zeros; this
// not possible in Cases (2)-(6) or (15)-(17) which may get here
// if this is 10^33 - 1 make it 10^34 - 1 and decrement exponent
- if (res.w[1] == 0x0000314dc6448d93ull &&
+ if (res.w[1] == 0x0000314dc6448d93ull &&
res.w[0] == 0x38c15b09ffffffffull) { // 10^33 - 1
res.w[1] = 0x0001ed09bead87c0ull; // 10^34 - 1
res.w[0] = 0x378d8e63ffffffffull;
e4--;
}
- } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
+ } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
is_midpoint_gt_even) { // double rounding error downward
- // res = res + 1
+ // res = res + 1
res.w[0]++;
if (res.w[0] == 0)
res.w[1]++;
@@ -3288,7 +3288,7 @@ delta_ge_zero:
}
} else {
// for RM, RP, RZ, RA apply correction in order to determine tininess
- // but do not save the result; apply the correction to
+ // but do not save the result; apply the correction to
// (-1)^p_sign * res * 10^0
P128.w[1] = p_sign | 0x3040000000000000ull | res.w[1];
P128.w[0] = res.w[0];
@@ -3310,7 +3310,7 @@ delta_ge_zero:
// at this point we have the result rounded with unbounded exponent in
// res and we know its tininess:
- // res = (-1)^p_sign * significand * 10^e4,
+ // res = (-1)^p_sign * significand * 10^e4,
// where q (significand) = ind = p34
// Note: res is correct only if expmin <= e4 <= expmax
@@ -3356,7 +3356,7 @@ delta_ge_zero:
} else if (x0 == ind) { // 1 <= x0 = ind <= p34 = 34
// this is <, =, or > 1/2 ulp
// compare the ind-digit value in the significand of res with
- // 1/2 ulp = 5*10^(ind-1), i.e. determine whether it is
+ // 1/2 ulp = 5*10^(ind-1), i.e. determine whether it is
// less than, equal to, or greater than 1/2 ulp (significand of res)
R128.w[1] = res.w[1] & MASK_COEFF;
R128.w[0] = res.w[0];
@@ -3372,12 +3372,12 @@ delta_ge_zero:
is_inexact_gt_midpoint = 1;
}
} else { // if (ind <= 38)
- if (R128.w[1] < midpoint128[ind - 20].w[1] ||
- (R128.w[1] == midpoint128[ind - 20].w[1] &&
+ if (R128.w[1] < midpoint128[ind - 20].w[1] ||
+ (R128.w[1] == midpoint128[ind - 20].w[1] &&
R128.w[0] < midpoint128[ind - 20].w[0])) { // < 1/2 ulp
lt_half_ulp = 1;
is_inexact_lt_midpoint = 1;
- } else if (R128.w[1] == midpoint128[ind - 20].w[1] &&
+ } else if (R128.w[1] == midpoint128[ind - 20].w[1] &&
R128.w[0] == midpoint128[ind - 20].w[0]) { // = 1/2 ulp
eq_half_ulp = 1;
is_midpoint_gt_even = 1;
@@ -3428,7 +3428,7 @@ delta_ge_zero:
p_sign | ((UINT64) (e4 + 6176) << 49) | (res.
w[1] & MASK_COEFF);
// avoid a double rounding error
- if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
+ if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
is_midpoint_lt_even) { // double rounding error upward
// res = res - 1
res.w[0]--;
@@ -3440,7 +3440,7 @@ delta_ge_zero:
// not possible in this underflow case
is_midpoint_lt_even = 0;
is_inexact_lt_midpoint = 1;
- } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
+ } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
is_midpoint_gt_even) { // double rounding error downward
// res = res + 1
res.w[0]++;
@@ -3451,7 +3451,7 @@ delta_ge_zero:
} else if (!is_midpoint_lt_even && !is_midpoint_gt_even &&
!is_inexact_lt_midpoint
&& !is_inexact_gt_midpoint) {
- // if this second rounding was exact the result may still be
+ // if this second rounding was exact the result may still be
// inexact because of the first rounding
if (is_inexact_gt_midpoint0 || is_midpoint_lt_even0) {
is_inexact_gt_midpoint = 1;
@@ -4131,10 +4131,10 @@ bid64qqq_fma (UINT128 x, UINT128 y, UINT128 z
_EXC_INFO_ARG);
#endif
- if ((rnd_mode == ROUNDING_DOWN) || (rnd_mode == ROUNDING_UP) ||
+ if ((rnd_mode == ROUNDING_DOWN) || (rnd_mode == ROUNDING_UP) ||
(rnd_mode == ROUNDING_TO_ZERO) || // no double rounding error is possible
((res.w[HIGH_128W] & MASK_NAN) == MASK_NAN) || //res=QNaN (cannot be SNaN)
- ((res.w[HIGH_128W] & MASK_ANY_INF) == MASK_INF)) { // result is infinity
+ ((res.w[HIGH_128W] & MASK_ANY_INF) == MASK_INF)) { // result is infinity
#if DECIMAL_CALL_BY_REFERENCE
bid128_to_bid64 (&res1, &res _RND_MODE_ARG _EXC_FLAGS_ARG);
#else
@@ -4150,7 +4150,7 @@ bid64qqq_fma (UINT128 x, UINT128 y, UINT128 z
&& ((res1 & MASK_BINARY_SIG1) < 1000000000000000ull)
&& (is_inexact_lt_midpoint0 || is_inexact_gt_midpoint0
|| is_midpoint_lt_even0 || is_midpoint_gt_even0)) {
- // set the inexact flag and the underflow flag
+ // set the inexact flag and the underflow flag
*pfpsf |= (INEXACT_EXCEPTION | UNDERFLOW_EXCEPTION);
} else if (is_inexact_lt_midpoint0 || is_inexact_gt_midpoint0 ||
is_midpoint_lt_even0 || is_midpoint_gt_even0) {
@@ -4184,7 +4184,7 @@ bid64qqq_fma (UINT128 x, UINT128 y, UINT128 z
C.w[0] = res.w[LOW_128W];
if ((C.w[1] == 0x0 && C.w[0] == 0x0) || // result is zero
- (unbexp <= (-398 - 35)) || (unbexp >= (369 + 16))) {
+ (unbexp <= (-398 - 35)) || (unbexp >= (369 + 16))) {
// clear under/overflow
#if DECIMAL_CALL_BY_REFERENCE
bid128_to_bid64 (&res1, &res _RND_MODE_ARG _EXC_FLAGS_ARG);
@@ -4239,7 +4239,7 @@ bid64qqq_fma (UINT128 x, UINT128 y, UINT128 z
C.w[0] >= nr_digits[nr_bits - 1].threshold_lo))
q++;
}
- // if q > 16, round to nearest even to 16 digits (but for underflow it may
+ // if q > 16, round to nearest even to 16 digits (but for underflow it may
// have to be truncated even more)
if (q > 16) {
x0 = q - 16;
@@ -4258,23 +4258,23 @@ bid64qqq_fma (UINT128 x, UINT128 y, UINT128 z
unbexp++;
q = 16; // need to set in case denormalization is necessary
} else {
- // the result does not require a second rounding (and it must have
+ // the result does not require a second rounding (and it must have
// been exact in the first rounding, since q <= 16)
res1 = C.w[0];
}
// avoid a double rounding error
- if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
+ if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
is_midpoint_lt_even) { // double rounding error upward
- // res = res - 1
- res1--; // res1 becomes odd
+ // res = res - 1
+ res1--; // res1 becomes odd
is_midpoint_lt_even = 0;
is_inexact_lt_midpoint = 1;
if (res1 == 0x00038d7ea4c67fffull) { // 10^15 - 1
- res1 = 0x002386f26fc0ffffull; // 10^16 - 1
+ res1 = 0x002386f26fc0ffffull; // 10^16 - 1
unbexp--;
}
- } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
+ } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
is_midpoint_gt_even) { // double rounding error downward
// res = res + 1
res1++; // res1 becomes odd (so it cannot be 10^16)
@@ -4282,7 +4282,7 @@ bid64qqq_fma (UINT128 x, UINT128 y, UINT128 z
is_inexact_gt_midpoint = 1;
} else if (!is_midpoint_lt_even && !is_midpoint_gt_even &&
!is_inexact_lt_midpoint && !is_inexact_gt_midpoint) {
- // if this second rounding was exact the result may still be
+ // if this second rounding was exact the result may still be
// inexact because of the first rounding
if (is_inexact_gt_midpoint0 || is_midpoint_lt_even0) {
is_inexact_gt_midpoint = 1;
@@ -4292,14 +4292,14 @@ bid64qqq_fma (UINT128 x, UINT128 y, UINT128 z
}
} else if (is_midpoint_gt_even &&
(is_inexact_gt_midpoint0 || is_midpoint_lt_even0)) {
- // pulled up to a midpoint
+ // pulled up to a midpoint
is_inexact_lt_midpoint = 1;
is_inexact_gt_midpoint = 0;
is_midpoint_lt_even = 0;
is_midpoint_gt_even = 0;
} else if (is_midpoint_lt_even &&
(is_inexact_lt_midpoint0 || is_midpoint_gt_even0)) {
- // pulled down to a midpoint
+ // pulled down to a midpoint
is_inexact_lt_midpoint = 0;
is_inexact_gt_midpoint = 1;
is_midpoint_lt_even = 0;
@@ -4307,7 +4307,7 @@ bid64qqq_fma (UINT128 x, UINT128 y, UINT128 z
} else {
;
}
- // this is the result rounded correctly to nearest even, with unbounded exp.
+ // this is the result rounded correctly to nearest even, with unbounded exp.
// check for overflow
if (q + unbexp > P16 + expmax16) {
@@ -4320,7 +4320,7 @@ bid64qqq_fma (UINT128 x, UINT128 y, UINT128 z
// 10^(unbexp - expmax16) and the product will fit in 16 decimal digits
scale = unbexp - expmax16;
res1 = res1 * ten2k64[scale]; // res1 * 10^scale
- unbexp = expmax16; // unbexp - scale
+ unbexp = expmax16; // unbexp - scale
} else {
; // continue
}
@@ -4378,13 +4378,13 @@ bid64qqq_fma (UINT128 x, UINT128 y, UINT128 z
is_inexact_lt_midpoint = 1;
}
// avoid a double rounding error
- if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
+ if ((is_inexact_gt_midpoint0 || is_midpoint_lt_even0) &&
is_midpoint_lt_even) { // double rounding error upward
// res = res - 1
res1--; // res1 becomes odd
is_midpoint_lt_even = 0;
is_inexact_lt_midpoint = 1;
- } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
+ } else if ((is_inexact_lt_midpoint0 || is_midpoint_gt_even0) &&
is_midpoint_gt_even) { // double rounding error downward
// res = res + 1
res1++; // res1 becomes odd
@@ -4392,7 +4392,7 @@ bid64qqq_fma (UINT128 x, UINT128 y, UINT128 z
is_inexact_gt_midpoint = 1;
} else if (!is_midpoint_lt_even && !is_midpoint_gt_even &&
!is_inexact_lt_midpoint && !is_inexact_gt_midpoint) {
- // if this rounding was exact the result may still be
+ // if this rounding was exact the result may still be
// inexact because of the previous roundings
if (is_inexact_gt_midpoint0 || is_midpoint_lt_even0) {
is_inexact_gt_midpoint = 1;
diff --git a/libgcc/config/libbid/bid128_logb.c b/libgcc/config/libbid/bid128_logb.c
index 0c02fde..2ca6c9f 100644
--- a/libgcc/config/libbid/bid128_logb.c
+++ b/libgcc/config/libbid/bid128_logb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 9700dc4..ff5ec12 100644
--- a/libgcc/config/libbid/bid128_minmax.c
+++ b/libgcc/config/libbid/bid128_minmax.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -172,7 +172,7 @@ bid128_minnum (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => ignore the exponent
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B => ignore the exponent
// field
// (Any non-canonical # is considered 0)
if ((sig_x.w[1] == 0) && (sig_x.w[0] == 0)) {
@@ -202,7 +202,7 @@ bid128_minnum (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison of
+ // if exponents are the same, then we have a simple comparison of
// the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1])
@@ -211,7 +211,7 @@ bid128_minnum (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
MASK_SIGN)) ? y : x;
BID_RETURN (res);
}
- // if both components are either bigger or smaller, it is clear what
+ // if both components are either bigger or smaller, it is clear what
// needs to be done
if (sig_x.w[1] >= sig_y.w[1] && sig_x.w[0] >= sig_y.w[0]
&& exp_x > exp_y) {
@@ -236,7 +236,7 @@ bid128_minnum (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
}
if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
res = ((((sig_n_prime256.w[3] > 0) || sig_n_prime256.w[2] > 0)
|| (sig_n_prime256.w[1] > sig_y.w[1])
@@ -247,7 +247,7 @@ bid128_minnum (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
BID_RETURN (res);
}
__mul_64x128_to_192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
res =
(((sig_n_prime192.w[2] > 0) || (sig_n_prime192.w[1] > sig_y.w[1])
@@ -265,7 +265,7 @@ bid128_minnum (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
res =
((sig_n_prime256.w[3] != 0 || sig_n_prime256.w[2] != 0
@@ -436,7 +436,7 @@ bid128_minnum_mag (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if ((sig_x.w[1] == 0) && (sig_x.w[0] == 0)) {
@@ -465,7 +465,7 @@ bid128_minnum_mag (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
|| (sig_x.w[1] == sig_y.w[1]
&& sig_x.w[0] >= sig_y.w[0]))
&& exp_x > exp_y)) {
- // if both components are either bigger or smaller, it is clear what
+ // if both components are either bigger or smaller, it is clear what
// needs to be done; also if the magnitudes are equal
res = y;
BID_RETURN (res);
@@ -491,7 +491,7 @@ bid128_minnum_mag (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
}
if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if positive, return whichever significand is larger
+ // if positive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -506,7 +506,7 @@ bid128_minnum_mag (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
BID_RETURN (res);
}
__mul_64x128_to_192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if positive, return whichever significand is larger
+ // if positive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -529,7 +529,7 @@ bid128_minnum_mag (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if positive, return whichever significand is larger
+ // if positive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
@@ -707,7 +707,7 @@ bid128_maxnum (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if ((sig_x.w[1] == 0) && (sig_x.w[0] == 0)) {
@@ -737,7 +737,7 @@ bid128_maxnum (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if exponents are the same, then we have a simple comparison of
+ // if exponents are the same, then we have a simple comparison of
// the significands
if (exp_y == exp_x) {
res = (((sig_x.w[1] > sig_y.w[1]) || (sig_x.w[1] == sig_y.w[1] &&
@@ -745,7 +745,7 @@ bid128_maxnum (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
((x.w[1] & MASK_SIGN) == MASK_SIGN)) ? x : y;
BID_RETURN (res);
}
- // if both components are either bigger or smaller, it is clear what
+ // if both components are either bigger or smaller, it is clear what
// needs to be done
if ((sig_x.w[1] > sig_y.w[1]
|| (sig_x.w[1] == sig_y.w[1] && sig_x.w[0] > sig_y.w[0]))
@@ -770,7 +770,7 @@ bid128_maxnum (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
}
if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
res = ((((sig_n_prime256.w[3] > 0) || sig_n_prime256.w[2] > 0)
|| (sig_n_prime256.w[1] > sig_y.w[1])
@@ -781,7 +781,7 @@ bid128_maxnum (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
BID_RETURN (res);
}
__mul_64x128_to_192 (sig_n_prime192, ten2k64[diff], sig_x);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
res =
(((sig_n_prime192.w[2] > 0) || (sig_n_prime192.w[1] > sig_y.w[1])
@@ -799,7 +799,7 @@ bid128_maxnum (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
res =
((sig_n_prime256.w[3] != 0 || sig_n_prime256.w[2] != 0
@@ -971,7 +971,7 @@ bid128_maxnum_mag (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
// ZERO (CASE4)
// some properties:
// (+ZERO == -ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if ((sig_x.w[1] == 0) && (sig_x.w[0] == 0)) {
@@ -1000,7 +1000,7 @@ bid128_maxnum_mag (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
|| (sig_x.w[1] == sig_y.w[1]
&& sig_x.w[0] >= sig_y.w[0]))
&& exp_x > exp_y)) {
- // if both components are either bigger or smaller, it is clear what
+ // if both components are either bigger or smaller, it is clear what
// needs to be done; also if the magnitudes are equal
res = x;
BID_RETURN (res);
@@ -1026,7 +1026,7 @@ bid128_maxnum_mag (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
}
if (diff > 19) { //128 by 128 bit multiply -> 256 bits
__mul_128x128_to_256 (sig_n_prime256, sig_x, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_y.w[1]
@@ -1063,7 +1063,7 @@ bid128_maxnum_mag (UINT128 x, UINT128 y _EXC_FLAGS_PARAM) {
if (diff > 19) { //128 by 128 bit multiply -> 256 bits
// adjust the y significand upwards
__mul_128x128_to_256 (sig_n_prime256, sig_y, ten2k128[diff - 20]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime256.w[3] == 0 && (sig_n_prime256.w[2] == 0)
&& sig_n_prime256.w[1] == sig_x.w[1]
diff --git a/libgcc/config/libbid/bid128_mul.c b/libgcc/config/libbid/bid128_mul.c
index a5b84e7..bec5082 100644
--- a/libgcc/config/libbid/bid128_mul.c
+++ b/libgcc/config/libbid/bid128_mul.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -140,7 +140,7 @@ bid64qq_mul (UINT128 x, UINT128 y
// x is non-canonical if coefficient is larger than 10^34 -1
C1.w[1] = 0;
C1.w[0] = 0;
- } else { // canonical
+ } else { // canonical
;
}
}
@@ -153,7 +153,7 @@ bid64qq_mul (UINT128 x, UINT128 y
// G0_G1=11 => non-canonical
y_exp = (y.w[HIGH_128W] << 2) & MASK_EXP; // biased and shifted left 49 bits
C2.w[1] = 0; // significand high
- C2.w[0] = 0; // significand low
+ C2.w[0] = 0; // significand low
} else { // G0_G1 != 11
y_exp = y.w[HIGH_128W] & MASK_EXP; // biased and shifted left 49 bits
if (C2.w[1] > 0x0001ed09bead87c0ull ||
@@ -169,7 +169,7 @@ bid64qq_mul (UINT128 x, UINT128 y
p_sign = x_sign ^ y_sign; // sign of the product
true_p_exp = (x_exp >> 49) - 6176 + (y_exp >> 49) - 6176;
- // true_p_exp, p_exp are used only for 0 * 0, 0 * f, or f * 0
+ // true_p_exp, p_exp are used only for 0 * 0, 0 * f, or f * 0
if (true_p_exp < -398)
p_exp = 0; // cannot be less than EXP_MIN
else if (true_p_exp > 369)
@@ -359,7 +359,7 @@ bid128_mul (UINT128 x,
// x is non-canonical if coefficient is larger than 10^34 -1
C1.w[1] = 0;
C1.w[0] = 0;
- } else { // canonical
+ } else { // canonical
;
}
}
@@ -371,7 +371,7 @@ bid128_mul (UINT128 x,
// G0_G1=11 => non-canonical
y_exp = (y.w[1] << 2) & MASK_EXP; // biased and shifted left 49 bits
C2.w[1] = 0; // significand high
- C2.w[0] = 0; // significand low
+ C2.w[0] = 0; // significand low
} else { // G0_G1 != 11
y_exp = y.w[1] & MASK_EXP; // biased and shifted left 49 bits
if (C2.w[1] > 0x0001ed09bead87c0ull ||
@@ -387,7 +387,7 @@ bid128_mul (UINT128 x,
p_sign = x_sign ^ y_sign; // sign of the product
true_p_exp = (x_exp >> 49) - 6176 + (y_exp >> 49) - 6176;
- // true_p_exp, p_exp are used only for 0 * 0, 0 * f, or f * 0
+ // true_p_exp, p_exp are used only for 0 * 0, 0 * f, or f * 0
if (true_p_exp < -6176)
p_exp = 0; // cannot be less than EXP_MIN
else if (true_p_exp > 6111)
diff --git a/libgcc/config/libbid/bid128_next.c b/libgcc/config/libbid/bid128_next.c
index 5c987c7..604d856 100644
--- a/libgcc/config/libbid/bid128_next.c
+++ b/libgcc/config/libbid/bid128_next.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -188,7 +188,7 @@ bid128_nextup (UINT128 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
ind = exp + 6176;
// C1 = C1 * 10^ind
if (ind <= 19) { // 1 <= P34 - q1 <= 19 <=> 15 <= q1 <= 33
- if (q1 <= 19) { // 64-bit C1, 64-bit 10^ind
+ if (q1 <= 19) { // 64-bit C1, 64-bit 10^ind
__mul_64x64_to_128MACH (C1, C1.w[0], ten2k64[ind]);
} else { // 20 <= q1 <= 33 => 128-bit C1, 64-bit 10^ind
__mul_128x64_to_128 (C1, ten2k64[ind], C1);
@@ -391,7 +391,7 @@ bid128_nextdown (UINT128 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
ind = exp + 6176;
// C1 = C1 * 10^ind
if (ind <= 19) { // 1 <= P34 - q1 <= 19 <=> 15 <= q1 <= 33
- if (q1 <= 19) { // 64-bit C1, 64-bit 10^ind
+ if (q1 <= 19) { // 64-bit C1, 64-bit 10^ind
__mul_64x64_to_128MACH (C1, C1.w[0], ten2k64[ind]);
} else { // 20 <= q1 <= 33 => 128-bit C1, 64-bit 10^ind
__mul_128x64_to_128 (C1, ten2k64[ind], C1);
@@ -440,7 +440,7 @@ bid128_nextdown (UINT128 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
void
bid128_nextafter (UINT128 * pres, UINT128 * px,
UINT128 *
- py _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
+ py _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
{
UINT128 x = *px;
UINT128 y = *py;
@@ -597,7 +597,7 @@ bid128_nextafter (UINT128 x,
#endif
BID_SWAP128 (res);
}
- // if the operand x is finite but the result is infinite, signal
+ // if the operand x is finite but the result is infinite, signal
// overflow and inexact
if (((x.w[1] & MASK_SPECIAL) != MASK_SPECIAL)
&& ((res.w[1] & MASK_SPECIAL) == MASK_SPECIAL)) {
@@ -634,9 +634,9 @@ bid128_nextafter (UINT128 x,
#endif
*pfpsf = tmp_fpsf; // restore fpsf
if (res1 && res2) {
- // set the inexact flag
+ // set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
- // set the underflow flag
+ // set the underflow flag
*pfpsf |= UNDERFLOW_EXCEPTION;
}
BID_RETURN (res);
diff --git a/libgcc/config/libbid/bid128_noncomp.c b/libgcc/config/libbid/bid128_noncomp.c
index 4ef166c..bb527dc 100644
--- a/libgcc/config/libbid/bid128_noncomp.c
+++ b/libgcc/config/libbid/bid128_noncomp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -83,7 +83,7 @@ bid128_isNormal (UINT128 x _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
res = 0;
BID_RETURN (res);
}
- // unpack x
+ // unpack x
x_exp = x.w[1] & MASK_EXP; // biased and shifted left 49 bit positions
C1_hi = x.w[1] & MASK_COEFF;
C1_lo = x.w[0];
@@ -168,7 +168,7 @@ bid128_isSubnormal (UINT128 x _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
res = 0;
BID_RETURN (res);
}
- // unpack x
+ // unpack x
x_exp = x.w[1] & MASK_EXP; // biased and shifted left 49 bit positions
C1_hi = x.w[1] & MASK_COEFF;
C1_lo = x.w[0];
@@ -343,7 +343,7 @@ bid128_isCanonical (UINT128 x _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
// not NaN or infinity; extract significand to ensure it is canonical
sig_x.w[1] = x.w[1] & 0x0001ffffffffffffull;
sig_x.w[0] = x.w[0];
- // a canonical number has a coefficient < 10^34
+ // a canonical number has a coefficient < 10^34
// (0x0001ed09_bead87c0_378d8e64_00000000)
if ((sig_x.w[1] > 0x0001ed09bead87c0ull) || // significand is non-canonical
((sig_x.w[1] == 0x0001ed09bead87c0ull) && (sig_x.w[0] > 0x378d8e63ffffffffull)) || // significand is non-canonical
@@ -486,7 +486,7 @@ bid128_class (UINT128 x _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
BID_RETURN (res);
}
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
- // if exponent is less than -6176, the number may be subnormal
+ // if exponent is less than -6176, the number may be subnormal
// (less than the smallest normal value)
// the smallest normal value is 1 x 10^-6143 = 10^33 x 10^-6176
// if (exp_x - 6176 < -6143)
@@ -654,7 +654,7 @@ bid128_totalOrder (UINT128 x,
res = 0; // y is a number, return 1
BID_RETURN (res);
} else {
- // x and y are both +NaN;
+ // x and y are both +NaN;
pyld_x.w[1] = x.w[1] & 0x00003fffffffffffull;
pyld_x.w[0] = x.w[0];
pyld_y.w[1] = y.w[1] & 0x00003fffffffffffull;
@@ -707,7 +707,7 @@ bid128_totalOrder (UINT128 x,
BID_RETURN (res);
}
// OPPOSITE SIGNS (CASE 3)
- // if signs are opposite, return 1 if x is negative
+ // if signs are opposite, return 1 if x is negative
// (if x < y, totalOrder is true)
if (((x.w[1] & MASK_SIGN) == MASK_SIGN) ^ ((y.w[1] & MASK_SIGN) ==
MASK_SIGN)) {
@@ -739,9 +739,9 @@ bid128_totalOrder (UINT128 x,
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF x IS CANONICAL
- // 9999999999999999999999999999999999 (decimal) =
+ // 9999999999999999999999999999999999 (decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((((sig_x.w[1] > 0x0001ed09bead87c0ull) ||
((sig_x.w[1] == 0x0001ed09bead87c0ull) &&
@@ -761,9 +761,9 @@ bid128_totalOrder (UINT128 x,
sig_y.w[0] = y.w[0];
// CHECK IF y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((((sig_y.w[1] > 0x0001ed09bead87c0ull) ||
((sig_y.w[1] == 0x0001ed09bead87c0ull) &&
@@ -778,10 +778,10 @@ bid128_totalOrder (UINT128 x,
}
}
// ZERO (CASE 5)
- // if x and y represent the same entities, and both are negative
+ // if x and y represent the same entities, and both are negative
// return true iff exp_x <= exp_y
if (x_is_zero && y_is_zero) {
- // we know that signs must be the same because we would have caught it
+ // we know that signs must be the same because we would have caught it
// in case3 if signs were different
// totalOrder(x,y) iff exp_x >= exp_y for negative numbers
// totalOrder(x,y) iff exp_x <= exp_y for positive numbers
@@ -818,7 +818,7 @@ bid128_totalOrder (UINT128 x,
}
// if |exp_x - exp_y| < 33, it comes down to the compensated significand
if (exp_x > exp_y) {
- // if exp_x is 33 greater than exp_y, it is definitely larger,
+ // if exp_x is 33 greater than exp_y, it is definitely larger,
// so no need for compensation
if (exp_x - exp_y > 33) {
res = ((x.w[1] & MASK_SIGN) == MASK_SIGN);
@@ -830,12 +830,12 @@ bid128_totalOrder (UINT128 x,
__mul_128x128_to_256 (sig_n_prime256, sig_x,
ten2k128[exp_x - exp_y - 20]);
// the compensated significands are equal (ie "x and y represent the same
- // entities") return 1 if (negative && expx > expy) ||
+ // entities") return 1 if (negative && expx > expy) ||
// (positive && expx < expy)
if ((sig_n_prime256.w[3] == 0) && (sig_n_prime256.w[2] == 0)
&& (sig_n_prime256.w[1] == sig_y.w[1])
&& (sig_n_prime256.w[0] == sig_y.w[0])) {
- // the case exp_x == exp_y cannot occur, because all bits must be
+ // the case exp_x == exp_y cannot occur, because all bits must be
// the same - would have been caught if (x == y)
res = ((exp_x <= exp_y) ^ ((x.w[1] & MASK_SIGN) == MASK_SIGN));
BID_RETURN (res);
@@ -850,7 +850,7 @@ bid128_totalOrder (UINT128 x,
BID_RETURN (res);
}
__mul_64x128_to_192 (sig_n_prime192, ten2k64[exp_x - exp_y], sig_x);
- // if positive, return whichever significand is larger
+ // if positive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -865,7 +865,7 @@ bid128_totalOrder (UINT128 x,
MASK_SIGN));
BID_RETURN (res);
}
- // if exp_x is 33 less than exp_y, it is definitely smaller,
+ // if exp_x is 33 less than exp_y, it is definitely smaller,
// no need for compensation
if (exp_y - exp_x > 33) {
res = ((x.w[1] & MASK_SIGN) != MASK_SIGN);
@@ -949,7 +949,7 @@ bid128_totalOrderMag (UINT128 x,
res = 0; // y is a number, return 0
BID_RETURN (res);
} else {
- // x and y are both +NaN;
+ // x and y are both +NaN;
pyld_x.w[1] = x.w[1] & 0x00003fffffffffffull;
pyld_x.w[0] = x.w[0];
pyld_y.w[1] = y.w[1] & 0x00003fffffffffffull;
@@ -1022,9 +1022,9 @@ bid128_totalOrderMag (UINT128 x,
exp_x = (x.w[1] >> 49) & 0x000000000003fffull;
// CHECK IF x IS CANONICAL
- // 9999999999999999999999999999999999 (decimal) =
+ // 9999999999999999999999999999999999 (decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((((sig_x.w[1] > 0x0001ed09bead87c0ull) ||
((sig_x.w[1] == 0x0001ed09bead87c0ull) &&
@@ -1044,9 +1044,9 @@ bid128_totalOrderMag (UINT128 x,
sig_y.w[0] = y.w[0];
// CHECK IF y IS CANONICAL
- // 9999999999999999999999999999999999(decimal) =
+ // 9999999999999999999999999999999999(decimal) =
// 1ed09_bead87c0_378d8e63_ffffffff(hexadecimal)
- // [0, 10^34) is the 754r supported canonical range.
+ // [0, 10^34) is the 754r supported canonical range.
// If the value exceeds that, it is interpreted as 0.
if ((((sig_y.w[1] > 0x0001ed09bead87c0ull) ||
((sig_y.w[1] == 0x0001ed09bead87c0ull) &&
@@ -1062,7 +1062,7 @@ bid128_totalOrderMag (UINT128 x,
}
// ZERO (CASE 4)
if (x_is_zero && y_is_zero) {
- // we know that signs must be the same because we would have caught it
+ // we know that signs must be the same because we would have caught it
// in case3 if signs were different
// totalOrder(x,y) iff exp_x <= exp_y for positive numbers
if (exp_x == exp_y) {
@@ -1098,7 +1098,7 @@ bid128_totalOrderMag (UINT128 x,
}
// if |exp_x - exp_y| < 33, it comes down to the compensated significand
if (exp_x > exp_y) {
- // if exp_x is 33 greater than exp_y, it is definitely larger,
+ // if exp_x is 33 greater than exp_y, it is definitely larger,
// so no need for compensation
if (exp_x - exp_y > 33) {
res = 0; // difference cannot be greater than 10^33
@@ -1109,12 +1109,12 @@ bid128_totalOrderMag (UINT128 x,
__mul_128x128_to_256 (sig_n_prime256, sig_x,
ten2k128[exp_x - exp_y - 20]);
// the compensated significands are equal (ie "x and y represent the same
- // entities") return 1 if (negative && expx > expy) ||
+ // entities") return 1 if (negative && expx > expy) ||
// (positive && expx < expy)
if ((sig_n_prime256.w[3] == 0) && (sig_n_prime256.w[2] == 0)
&& (sig_n_prime256.w[1] == sig_y.w[1])
&& (sig_n_prime256.w[0] == sig_y.w[0])) {
- // the case (exp_x == exp_y) cannot occur, because all bits must be
+ // the case (exp_x == exp_y) cannot occur, because all bits must be
// the same - would have been caught if (x == y)
res = (exp_x <= exp_y);
BID_RETURN (res);
@@ -1127,7 +1127,7 @@ bid128_totalOrderMag (UINT128 x,
BID_RETURN (res);
}
__mul_64x128_to_192 (sig_n_prime192, ten2k64[exp_x - exp_y], sig_x);
- // if positive, return whichever significand is larger
+ // if positive, return whichever significand is larger
// (converse if negative)
if ((sig_n_prime192.w[2] == 0) && sig_n_prime192.w[1] == sig_y.w[1]
&& (sig_n_prime192.w[0] == sig_y.w[0])) {
@@ -1140,7 +1140,7 @@ bid128_totalOrderMag (UINT128 x,
&& sig_n_prime192.w[0] < sig_y.w[0])));
BID_RETURN (res);
}
- // if exp_x is 33 less than exp_y, it is definitely smaller,
+ // if exp_x is 33 less than exp_y, it is definitely smaller,
// no need for compensation
if (exp_y - exp_x > 33) {
res = 1;
diff --git a/libgcc/config/libbid/bid128_quantize.c b/libgcc/config/libbid/bid128_quantize.c
index cc1d5d3..eabea8b 100644
--- a/libgcc/config/libbid/bid128_quantize.c
+++ b/libgcc/config/libbid/bid128_quantize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -64,7 +64,7 @@ if ((y.w[1] & 0x7c00000000000000ull) == 0x7c00000000000000ull) {
if ((y.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) {
// check if x is not Inf.
if (((x.w[1] & 0x7c00000000000000ull) < 0x7800000000000000ull)) {
- // return NaN
+ // return NaN
#ifdef SET_STATUS_FLAGS
// set status flags
__set_status_flags (pfpsf, INVALID_EXCEPTION);
@@ -167,8 +167,8 @@ if ((UINT32) total_digits <= 34) {
if (rnd_mode == 0)
#endif
if (CR.w[0] & 1) {
- // check whether fractional part of initial_P/10^extra_digits is
- // exactly .5 this is the same as fractional part of
+ // check whether fractional part of initial_P/10^extra_digits is
+ // exactly .5 this is the same as fractional part of
// (initial_P + 0.5*10^extra_digits)/10^extra_digits is exactly zero
// get remainder
diff --git a/libgcc/config/libbid/bid128_rem.c b/libgcc/config/libbid/bid128_rem.c
index f3f66c8..f229b28 100644
--- a/libgcc/config/libbid/bid128_rem.c
+++ b/libgcc/config/libbid/bid128_rem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -58,7 +58,7 @@ if ((x.w[1] & 0x7c00000000000000ull) == 0x7c00000000000000ull) {
if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) {
// check if y is Inf.
if (((y.w[1] & 0x7c00000000000000ull) != 0x7c00000000000000ull))
- // return NaN
+ // return NaN
{
#ifdef SET_STATUS_FLAGS
// set status flags
diff --git a/libgcc/config/libbid/bid128_round_integral.c b/libgcc/config/libbid/bid128_round_integral.c
index 051f826..1d97300 100644
--- a/libgcc/config/libbid/bid128_round_integral.c
+++ b/libgcc/config/libbid/bid128_round_integral.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -74,7 +74,7 @@ if ((x.w[1] & MASK_SPECIAL) == MASK_SPECIAL) {
// return +inf
res.w[1] = 0x7800000000000000ull;
res.w[0] = 0x0000000000000000ull;
- } else { // x is -inf
+ } else { // x is -inf
// return -inf
res.w[1] = 0xf800000000000000ull;
res.w[0] = 0x0000000000000000ull;
@@ -226,7 +226,7 @@ case ROUNDING_TO_NEAREST:
if ((q + exp) >= 0) { // exp < 0 and 1 <= -exp <= q
// need to shift right -exp digits from the coefficient; exp will be 0
ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 = C1 + 1/2 * 10^x where the result C1 fits in 127 bits
tmp64 = C1.w[0];
if (ind <= 19) {
@@ -286,9 +286,9 @@ case ROUNDING_TO_NEAREST:
fstar.w[0] >= ten2mk128[ind - 1].w[0])) {
// set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
- } // else the result is exact
- } else { // the result is inexact; f2* <= 1/2
- // set the inexact flag
+ } // else the result is exact
+ } else { // the result is inexact; f2* <= 1/2
+ // set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
}
} else if (ind - 1 <= 21) { // 3 <= ind - 1 <= 21 => 3 <= shift <= 63
@@ -379,7 +379,7 @@ case ROUNDING_TIES_AWAY:
if ((q + exp) >= 0) { // exp < 0 and 1 <= -exp <= q
// need to shift right -exp digits from the coefficient; exp will be 0
ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 = C1 + 1/2 * 10^x where the result C1 fits in 127 bits
tmp64 = C1.w[0];
if (ind <= 19) {
@@ -504,9 +504,9 @@ case ROUNDING_TIES_AWAY:
case ROUNDING_DOWN:
if ((q + exp) > 0) { // exp < 0 and 1 <= -exp < q
// need to shift right -exp digits from the coefficient; exp will be 0
- ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
+ ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
// (number of digits to be chopped off)
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// FOR ROUND_TO_NEAREST, WE ADD 1/2 ULP(y) then truncate
// FOR ROUND_TO_ZERO, WE DON'T NEED TO ADD 1/2 ULP
// FOR ROUND_TO_POSITIVE_INFINITY, WE TRUNCATE, THEN ADD 1 IF POSITIVE
@@ -613,9 +613,9 @@ case ROUNDING_DOWN:
case ROUNDING_UP:
if ((q + exp) > 0) { // exp < 0 and 1 <= -exp < q
// need to shift right -exp digits from the coefficient; exp will be 0
- ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
+ ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
// (number of digits to be chopped off)
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// FOR ROUND_TO_NEAREST, WE ADD 1/2 ULP(y) then truncate
// FOR ROUND_TO_ZERO, WE DON'T NEED TO ADD 1/2 ULP
// FOR ROUND_TO_POSITIVE_INFINITY, WE TRUNCATE, THEN ADD 1 IF POSITIVE
@@ -627,7 +627,7 @@ case ROUNDING_UP:
// C1.w[0] = C1.w[0] + midpoint128[ind - 20].w[0];
// C1.w[1] = C1.w[1] + midpoint128[ind - 20].w[1];
// }
- // if (C1.w[0] < tmp64) C1.w[1]++;
+ // if (C1.w[0] < tmp64) C1.w[1]++;
// if carry-out from C1.w[0], increment C1.w[1]
// calculate C* and f*
// C* is actually floor(C*) in this case
@@ -643,10 +643,10 @@ case ROUNDING_UP:
res.w[0] = P256.w[2];
// redundant fstar.w[3] = 0;
// redundant fstar.w[2] = 0;
- // redundant fstar.w[1] = P256.w[1];
+ // redundant fstar.w[1] = P256.w[1];
// redundant fstar.w[0] = P256.w[0];
// fraction f* > 10^(-x) <=> inexact
- // f* is in the right position to be compared with
+ // f* is in the right position to be compared with
// 10^(-x) from ten2mk128[]
if ((P256.w[1] > ten2mk128[ind - 1].w[1])
|| (P256.w[1] == ten2mk128[ind - 1].w[1]
@@ -668,7 +668,7 @@ case ROUNDING_UP:
fstar.w[1] = P256.w[1];
fstar.w[0] = P256.w[0];
// fraction f* > 10^(-x) <=> inexact
- // f* is in the right position to be compared with
+ // f* is in the right position to be compared with
// 10^(-x) from ten2mk128[]
if (fstar.w[2] || fstar.w[1] > ten2mk128[ind - 1].w[1] ||
(fstar.w[1] == ten2mk128[ind - 1].w[1] &&
@@ -690,7 +690,7 @@ case ROUNDING_UP:
fstar.w[1] = P256.w[1];
fstar.w[0] = P256.w[0];
// fraction f* > 10^(-x) <=> inexact
- // f* is in the right position to be compared with
+ // f* is in the right position to be compared with
// 10^(-x) from ten2mk128[]
if (fstar.w[3] || fstar.w[2]
|| fstar.w[1] > ten2mk128[ind - 1].w[1]
@@ -724,7 +724,7 @@ case ROUNDING_TO_ZERO:
// need to shift right -exp digits from the coefficient; exp will be 0
ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
// (number of digits to be chopped off)
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// FOR ROUND_TO_NEAREST, WE ADD 1/2 ULP(y) then truncate
// FOR ROUND_TO_ZERO, WE DON'T NEED TO ADD 1/2 ULP
// FOR ROUND_TO_POSITIVE_INFINITY, WE TRUNCATE, THEN ADD 1 IF POSITIVE
@@ -736,7 +736,7 @@ case ROUNDING_TO_ZERO:
// C1.w[0] = C1.w[0] + midpoint128[ind - 20].w[0];
// C1.w[1] = C1.w[1] + midpoint128[ind - 20].w[1];
// }
- // if (C1.w[0] < tmp64) C1.w[1]++;
+ // if (C1.w[0] < tmp64) C1.w[1]++;
// if carry-out from C1.w[0], increment C1.w[1]
// calculate C* and f*
// C* is actually floor(C*) in this case
@@ -752,10 +752,10 @@ case ROUNDING_TO_ZERO:
res.w[0] = P256.w[2];
// redundant fstar.w[3] = 0;
// redundant fstar.w[2] = 0;
- // redundant fstar.w[1] = P256.w[1];
+ // redundant fstar.w[1] = P256.w[1];
// redundant fstar.w[0] = P256.w[0];
// fraction f* > 10^(-x) <=> inexact
- // f* is in the right position to be compared with
+ // f* is in the right position to be compared with
// 10^(-x) from ten2mk128[]
if ((P256.w[1] > ten2mk128[ind - 1].w[1])
|| (P256.w[1] == ten2mk128[ind - 1].w[1]
@@ -771,7 +771,7 @@ case ROUNDING_TO_ZERO:
fstar.w[1] = P256.w[1];
fstar.w[0] = P256.w[0];
// fraction f* > 10^(-x) <=> inexact
- // f* is in the right position to be compared with
+ // f* is in the right position to be compared with
// 10^(-x) from ten2mk128[]
if (fstar.w[2] || fstar.w[1] > ten2mk128[ind - 1].w[1] ||
(fstar.w[1] == ten2mk128[ind - 1].w[1] &&
@@ -787,7 +787,7 @@ case ROUNDING_TO_ZERO:
fstar.w[1] = P256.w[1];
fstar.w[0] = P256.w[0];
// fraction f* > 10^(-x) <=> inexact
- // f* is in the right position to be compared with
+ // f* is in the right position to be compared with
// 10^(-x) from ten2mk128[]
if (fstar.w[3] || fstar.w[2]
|| fstar.w[1] > ten2mk128[ind - 1].w[1]
@@ -860,7 +860,7 @@ if ((x.w[1] & MASK_NAN) == MASK_NAN) { // x is NAN
// return +inf
res.w[1] = 0x7800000000000000ull;
res.w[0] = 0x0000000000000000ull;
- } else { // x is -inf
+ } else { // x is -inf
// return -inf
res.w[1] = 0xf800000000000000ull;
res.w[0] = 0x0000000000000000ull;
@@ -955,7 +955,7 @@ if (exp >= 0) { // -exp <= 0
} else if ((q + exp) >= 0) { // exp < 0 and 1 <= -exp <= q
// need to shift right -exp digits from the coefficient; the exp will be 0
ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 = C1 + 1/2 * 10^x where the result C1 fits in 127 bits
tmp64 = C1.w[0];
if (ind <= 19) {
@@ -1059,13 +1059,13 @@ BID128_FUNCTION_ARG1_NORND (bid128_round_integral_negative, x)
UINT64 x_sign;
UINT64 x_exp;
int exp; // unbiased exponent
- // Note: C1.w[1], C1.w[0] represent x_signif_hi, x_signif_lo
+ // Note: C1.w[1], C1.w[0] represent x_signif_hi, x_signif_lo
// (all are UINT64)
BID_UI64DOUBLE tmp1;
unsigned int x_nr_bits;
int q, ind, shift;
UINT128 C1;
- // UINT128 res is C* at first - represents up to 34 decimal digits ~
+ // UINT128 res is C* at first - represents up to 34 decimal digits ~
// 113 bits
UINT256 fstar;
UINT256 P256;
@@ -1099,7 +1099,7 @@ if ((x.w[1] & MASK_NAN) == MASK_NAN) { // x is NAN
// return +inf
res.w[1] = 0x7800000000000000ull;
res.w[0] = 0x0000000000000000ull;
- } else { // x is -inf
+ } else { // x is -inf
// return -inf
res.w[1] = 0xf800000000000000ull;
res.w[0] = 0x0000000000000000ull;
@@ -1202,9 +1202,9 @@ if (exp >= 0) { // -exp <= 0
BID_RETURN (res);
} else if ((q + exp) > 0) { // exp < 0 and 1 <= -exp < q
// need to shift right -exp digits from the coefficient; the exp will be 0
- ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
+ ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
// (number of digits to be chopped off)
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// FOR ROUND_TO_NEAREST, WE ADD 1/2 ULP(y) then truncate
// FOR ROUND_TO_ZERO, WE DON'T NEED TO ADD 1/2 ULP
// FOR ROUND_TO_POSITIVE_INFINITY, WE TRUNCATE, THEN ADD 1 IF POSITIVE
@@ -1315,13 +1315,13 @@ BID128_FUNCTION_ARG1_NORND (bid128_round_integral_positive, x)
UINT64 x_sign;
UINT64 x_exp;
int exp; // unbiased exponent
- // Note: C1.w[1], C1.w[0] represent x_signif_hi, x_signif_lo
+ // Note: C1.w[1], C1.w[0] represent x_signif_hi, x_signif_lo
// (all are UINT64)
BID_UI64DOUBLE tmp1;
unsigned int x_nr_bits;
int q, ind, shift;
UINT128 C1;
- // UINT128 res is C* at first - represents up to 34 decimal digits ~
+ // UINT128 res is C* at first - represents up to 34 decimal digits ~
// 113 bits
UINT256 fstar;
UINT256 P256;
@@ -1355,7 +1355,7 @@ if ((x.w[1] & MASK_NAN) == MASK_NAN) { // x is NAN
// return +inf
res.w[1] = 0x7800000000000000ull;
res.w[0] = 0x0000000000000000ull;
- } else { // x is -inf
+ } else { // x is -inf
// return -inf
res.w[1] = 0xf800000000000000ull;
res.w[0] = 0x0000000000000000ull;
@@ -1390,7 +1390,7 @@ if ((x.w[1] & 0x6000000000000000ull) == 0x6000000000000000ull) { // G0_G1=11
// test for input equal to zero
if ((C1.w[1] == 0x0ull) && (C1.w[0] == 0x0ull)) {
// x is 0
- // return 0 preserving the sign bit and the preferred exponent
+ // return 0 preserving the sign bit and the preferred exponent
// of MAX(Q(x), 0)
if (x_exp <= (0x1820ull << 49)) {
res.w[1] = (x.w[1] & 0x8000000000000000ull) | 0x3040000000000000ull;
@@ -1405,12 +1405,12 @@ if ((C1.w[1] == 0x0ull) && (C1.w[0] == 0x0ull)) {
// if (exp <= -p) return -0.0 or +1.0
if (x_exp <= 0x2ffc000000000000ull) { // 0x2ffc000000000000ull == -34
if (x_sign) {
- // if negative, return negative 0, because we know the coefficient
+ // if negative, return negative 0, because we know the coefficient
// is non-zero (would have been caught above)
res.w[1] = 0xb040000000000000ull;
res.w[0] = 0x0000000000000000ull;
} else {
- // if positive, return positive 1, because we know coefficient is
+ // if positive, return positive 1, because we know coefficient is
// non-zero (would have been caught above)
res.w[1] = 0x3040000000000000ull;
res.w[0] = 0x0000000000000001ull;
@@ -1458,9 +1458,9 @@ if (exp >= 0) { // -exp <= 0
BID_RETURN (res);
} else if ((q + exp) > 0) { // exp < 0 and 1 <= -exp < q
// need to shift right -exp digits from the coefficient; exp will be 0
- ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
+ ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
// (number of digits to be chopped off)
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// FOR ROUND_TO_NEAREST, WE ADD 1/2 ULP(y) then truncate
// FOR ROUND_TO_ZERO, WE DON'T NEED TO ADD 1/2 ULP
// FOR ROUND_TO_POSITIVE_INFINITY, WE TRUNCATE, THEN ADD 1 IF POSITIVE
@@ -1472,7 +1472,7 @@ if (exp >= 0) { // -exp <= 0
// C1.w[0] = C1.w[0] + midpoint128[ind - 20].w[0];
// C1.w[1] = C1.w[1] + midpoint128[ind - 20].w[1];
// }
- // if (C1.w[0] < tmp64) C1.w[1]++;
+ // if (C1.w[0] < tmp64) C1.w[1]++;
// if carry-out from C1.w[0], increment C1.w[1]
// calculate C* and f*
// C* is actually floor(C*) in this case
@@ -1490,10 +1490,10 @@ if (exp >= 0) { // -exp <= 0
if (!x_sign) { // if positive
// redundant fstar.w[3] = 0;
// redundant fstar.w[2] = 0;
- // redundant fstar.w[1] = P256.w[1];
+ // redundant fstar.w[1] = P256.w[1];
// redundant fstar.w[0] = P256.w[0];
// fraction f* > 10^(-x) <=> inexact
- // f* is in the right position to be compared with
+ // f* is in the right position to be compared with
// 10^(-x) from ten2mk128[]
if ((P256.w[1] > ten2mk128[ind - 1].w[1])
|| (P256.w[1] == ten2mk128[ind - 1].w[1]
@@ -1514,7 +1514,7 @@ if (exp >= 0) { // -exp <= 0
fstar.w[1] = P256.w[1];
fstar.w[0] = P256.w[0];
// fraction f* > 10^(-x) <=> inexact
- // f* is in the right position to be compared with
+ // f* is in the right position to be compared with
// 10^(-x) from ten2mk128[]
if (fstar.w[2] || fstar.w[1] > ten2mk128[ind - 1].w[1] ||
(fstar.w[1] == ten2mk128[ind - 1].w[1] &&
@@ -1535,7 +1535,7 @@ if (exp >= 0) { // -exp <= 0
fstar.w[1] = P256.w[1];
fstar.w[0] = P256.w[0];
// fraction f* > 10^(-x) <=> inexact
- // f* is in the right position to be compared with
+ // f* is in the right position to be compared with
// 10^(-x) from ten2mk128[]
if (fstar.w[3] || fstar.w[2]
|| fstar.w[1] > ten2mk128[ind - 1].w[1]
@@ -1610,7 +1610,7 @@ if ((x.w[1] & MASK_NAN) == MASK_NAN) { // x is NAN
// return +inf
res.w[1] = 0x7800000000000000ull;
res.w[0] = 0x0000000000000000ull;
- } else { // x is -inf
+ } else { // x is -inf
// return -inf
res.w[1] = 0xf800000000000000ull;
res.w[0] = 0x0000000000000000ull;
@@ -1706,7 +1706,7 @@ if (exp >= 0) { // -exp <= 0
// need to shift right -exp digits from the coefficient; the exp will be 0
ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
// (number of digits to be chopped off)
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// FOR ROUND_TO_NEAREST, WE ADD 1/2 ULP(y) then truncate
// FOR ROUND_TO_ZERO, WE DON'T NEED TO ADD 1/2 ULP
// FOR ROUND_TO_POSITIVE_INFINITY, WE TRUNCATE, THEN ADD 1 IF POSITIVE
@@ -1718,7 +1718,7 @@ if (exp >= 0) { // -exp <= 0
// C1.w[0] = C1.w[0] + midpoint128[ind - 20].w[0];
// C1.w[1] = C1.w[1] + midpoint128[ind - 20].w[1];
// }
- // if (C1.w[0] < tmp64) C1.w[1]++;
+ // if (C1.w[0] < tmp64) C1.w[1]++;
// if carry-out from C1.w[0], increment C1.w[1]
// calculate C* and f*
// C* is actually floor(C*) in this case
@@ -1760,14 +1760,14 @@ BID128_FUNCTION_ARG1_NORND (bid128_round_integral_nearest_away, x)
UINT64 x_sign;
UINT64 x_exp;
int exp; // unbiased exponent
- // Note: C1.w[1], C1.w[0] represent x_signif_hi, x_signif_lo
+ // Note: C1.w[1], C1.w[0] represent x_signif_hi, x_signif_lo
// (all are UINT64)
UINT64 tmp64;
BID_UI64DOUBLE tmp1;
unsigned int x_nr_bits;
int q, ind, shift;
UINT128 C1;
- // UINT128 res is C* at first - represents up to 34 decimal digits ~
+ // UINT128 res is C* at first - represents up to 34 decimal digits ~
// 113 bits
// UINT256 fstar;
UINT256 P256;
@@ -1801,7 +1801,7 @@ if ((x.w[1] & MASK_NAN) == MASK_NAN) { // x is NAN
// return +inf
res.w[1] = 0x7800000000000000ull;
res.w[0] = 0x0000000000000000ull;
- } else { // x is -inf
+ } else { // x is -inf
// return -inf
res.w[1] = 0xf800000000000000ull;
res.w[0] = 0x0000000000000000ull;
@@ -1896,7 +1896,7 @@ if (exp >= 0) { // -exp <= 0
} else if ((q + exp) >= 0) { // exp < 0 and 1 <= -exp <= q
// need to shift right -exp digits from the coefficient; the exp will be 0
ind = -exp; // 1 <= ind <= 34; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 = C1 + 1/2 * 10^x where the result C1 fits in 127 bits
tmp64 = C1.w[0];
if (ind <= 19) {
diff --git a/libgcc/config/libbid/bid128_scalb.c b/libgcc/config/libbid/bid128_scalb.c
index b638ced..c694c67 100644
--- a/libgcc/config/libbid/bid128_scalb.c
+++ b/libgcc/config/libbid/bid128_scalb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 d25c058..b280383 100644
--- a/libgcc/config/libbid/bid128_sqrt.c
+++ b/libgcc/config/libbid/bid128_sqrt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 8fc12ee..49ad179 100644..100755
--- a/libgcc/config/libbid/bid128_string.c
+++ b/libgcc/config/libbid/bid128_string.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -31,6 +31,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid128_2_str.h"
#include "bid128_2_str_macros.h"
+#define MIN_DIGITS(a,b) ((a) < (b) ? (a) : (b))
+
extern int bid128_coeff_2_string (UINT64 X_hi, UINT64 X_lo,
char *char_ptr);
@@ -45,7 +47,7 @@ bid128_to_string (char *str,
#else
void
-bid128_to_string (char *str, UINT128 x
+bid128_to_string (char *str, UINT128 x
_EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
#endif
UINT64 x_sign;
@@ -73,14 +75,14 @@ bid128_to_string (char *str, UINT128 x
if ((x.w[1] & MASK_NAN) == MASK_NAN) { // x is NAN
if ((x.w[1] & MASK_SNAN) == MASK_SNAN) { // x is SNAN
// set invalid flag
- str[0] = ((SINT64)x.w[1]<0)? '-':'+';
+ str[0] = ((SINT64)x.w[1]<0)? '-':'+';
str[1] = 'S';
str[2] = 'N';
str[3] = 'a';
str[4] = 'N';
str[5] = '\0';
} else { // x is QNaN
- str[0] = ((SINT64)x.w[1]<0)? '-':'+';
+ str[0] = ((SINT64)x.w[1]<0)? '-':'+';
str[1] = 'Q';
str[2] = 'N';
str[3] = 'a';
@@ -94,7 +96,7 @@ bid128_to_string (char *str, UINT128 x
str[2] = 'n';
str[3] = 'f';
str[4] = '\0';
- } else { // x is -inf
+ } else { // x is -inf
str[0] = '-';
str[1] = 'I';
str[2] = 'n';
@@ -122,11 +124,11 @@ bid128_to_string (char *str, UINT128 x
}
if (exp >= 0) {
str[len++] = '+';
- len += sprintf (str + len, "%u", exp);// should not use sprintf (should
+ len += sprintf (str + len, "%u", exp);// should not use sprintf (should
// use sophisticated algorithm, since we know range of exp is limited)
str[len++] = '\0';
} else {
- len += sprintf (str + len, "%d", exp);// should not use sprintf (should
+ len += sprintf (str + len, "%d", exp);// should not use sprintf (should
// use sophisticated algorithm, since we know range of exp is limited)
str[len++] = '\0';
}
@@ -150,18 +152,18 @@ bid128_to_string (char *str, UINT128 x
// determine coefficient's representation as a decimal string
// if zero or non-canonical, set coefficient to '0'
- if ((C1.w[1] > 0x0001ed09bead87c0ull) ||
- (C1.w[1] == 0x0001ed09bead87c0ull &&
- (C1.w[0] > 0x378d8e63ffffffffull)) ||
- ((x.w[1] & 0x6000000000000000ull) == 0x6000000000000000ull) ||
+ if ((C1.w[1] > 0x0001ed09bead87c0ull) ||
+ (C1.w[1] == 0x0001ed09bead87c0ull &&
+ (C1.w[0] > 0x378d8e63ffffffffull)) ||
+ ((x.w[1] & 0x6000000000000000ull) == 0x6000000000000000ull) ||
((C1.w[1] == 0) && (C1.w[0] == 0))) {
str[k++] = '0';
} else {
/* ****************************************************
- This takes a bid coefficient in C1.w[1],C1.w[0]
- and put the converted character sequence at location
+ This takes a bid coefficient in C1.w[1],C1.w[0]
+ and put the converted character sequence at location
starting at &(str[k]). The function returns the number
- of MiDi returned. Note that the character sequence
+ of MiDi returned. Note that the character sequence
does not have leading zeros EXCEPT when the input is of
zero value. It will then output 1 character '0'
The algorithm essentailly tries first to get a sequence of
@@ -179,7 +181,7 @@ bid128_to_string (char *str, UINT128 x
18 digits, we set hi = 0, and lo = d to begin with.
We then retrieve from a table, for j = 0, 1, ..., 8
that gives us A and B where c_j 2^(59+6j) = A * 10^18 + B.
- hi += A ; lo += B; After each accumulation into lo, we normalize
+ hi += A ; lo += B; After each accumulation into lo, we normalize
immediately. So at the end, we have the decomposition as we need. */
Tmp = C1.w[0] >> 59;
@@ -283,6 +285,7 @@ bid128_from_string (char *ps _RND_MODE_PARAM _EXC_FLAGS_PARAM
int ndigits_before, ndigits_after, ndigits_total, dec_expon, sgn_exp,
i, d2, rdx_pt_enc;
char c, buffer[MAX_STRING_DIGITS_128];
+ int min_digits, sticky_bit=0;
int save_rnd_mode;
int save_fpsf;
@@ -311,7 +314,7 @@ bid128_from_string (char *ps _RND_MODE_PARAM _EXC_FLAGS_PARAM
c = *ps;
- // if c is null or not equal to a (radix point, negative sign,
+ // if c is null or not equal to a (radix point, negative sign,
// positive sign, or number) it might be SNaN, sNaN, Infinity
if (!c
|| (c != '.' && c != '-' && c != '+'
@@ -331,8 +334,8 @@ bid128_from_string (char *ps _RND_MODE_PARAM _EXC_FLAGS_PARAM
BID_RETURN (res);
}
// return sNaN
- if (tolower_macro (ps[0]) == 's' && tolower_macro (ps[1]) == 'n' &&
- tolower_macro (ps[2]) == 'a' && tolower_macro (ps[3]) == 'n') {
+ if (tolower_macro (ps[0]) == 's' && tolower_macro (ps[1]) == 'n' &&
+ tolower_macro (ps[2]) == 'a' && tolower_macro (ps[3]) == 'n') {
// case insensitive check for snan
res.w[1] = 0x7e00000000000000ull;
BID_RETURN (res);
@@ -342,11 +345,11 @@ bid128_from_string (char *ps _RND_MODE_PARAM _EXC_FLAGS_PARAM
BID_RETURN (res);
}
}
- // if +Inf, -Inf, +Infinity, or -Infinity (case insensitive check for inf)
- if ((tolower_macro (ps[1]) == 'i' && tolower_macro (ps[2]) == 'n' &&
- tolower_macro (ps[3]) == 'f') && (!ps[4] ||
- (tolower_macro (ps[4]) == 'i' && tolower_macro (ps[5]) == 'n' &&
- tolower_macro (ps[6]) == 'i' && tolower_macro (ps[7]) == 't' &&
+ // if +Inf, -Inf, +Infinity, or -Infinity (case insensitive check for inf)
+ if ((tolower_macro (ps[1]) == 'i' && tolower_macro (ps[2]) == 'n' &&
+ tolower_macro (ps[3]) == 'f') && (!ps[4] ||
+ (tolower_macro (ps[4]) == 'i' && tolower_macro (ps[5]) == 'n' &&
+ tolower_macro (ps[6]) == 'i' && tolower_macro (ps[7]) == 't' &&
tolower_macro (ps[8]) == 'y' && !ps[9]))) { // ci check for infinity
res.w[0] = 0;
@@ -396,17 +399,17 @@ bid128_from_string (char *ps _RND_MODE_PARAM _EXC_FLAGS_PARAM
ps++;
- // for numbers such as 0.0000000000000000000000000000000000001001,
+ // for numbers such as 0.0000000000000000000000000000000000001001,
// we want to count the leading zeros
if (rdx_pt_enc) {
right_radix_leading_zeros++;
}
- // if this character is a radix point, make sure we haven't already
+ // if this character is a radix point, make sure we haven't already
// encountered one
if (*(ps) == '.') {
if (rdx_pt_enc == 0) {
rdx_pt_enc = 1;
- // if this is the first radix point, and the next character is NULL,
+ // if this is the first radix point, and the next character is NULL,
// we have a zero
if (!*(ps + 1)) {
res.w[1] =
@@ -443,8 +446,10 @@ bid128_from_string (char *ps _RND_MODE_PARAM _EXC_FLAGS_PARAM
if (!rdx_pt_enc) {
// investigate string (before radix point)
while ((unsigned) (c - '0') <= 9
- && ndigits_before < MAX_STRING_DIGITS_128) {
- buffer[ndigits_before] = c;
+ /*&& ndigits_before < MAX_STRING_DIGITS_128*/) {
+ if(ndigits_before < MAX_FORMAT_DIGITS_128) buffer[ndigits_before] = c;
+ else if(ndigits_before < MAX_STRING_DIGITS_128) { buffer[ndigits_before] = c; }
+ else if(c>'0') { sticky_bit = 1; }
ps++;
c = *ps;
ndigits_before++;
@@ -457,8 +462,10 @@ bid128_from_string (char *ps _RND_MODE_PARAM _EXC_FLAGS_PARAM
// investigate string (after radix point)
while ((unsigned) (c - '0') <= 9
- && ndigits_total < MAX_STRING_DIGITS_128) {
- buffer[ndigits_total] = c;
+ /*&& ndigits_total < MAX_STRING_DIGITS_128*/) {
+ if(ndigits_total < MAX_FORMAT_DIGITS_128) buffer[ndigits_total] = c;
+ else if(ndigits_total < MAX_STRING_DIGITS_128) { buffer[ndigits_total] = c; }
+ else if(c>'0') { sticky_bit = 1; }
ps++;
c = *ps;
ndigits_total++;
@@ -474,8 +481,10 @@ bid128_from_string (char *ps _RND_MODE_PARAM _EXC_FLAGS_PARAM
ndigits_total = 0;
// investigate string (after radix point)
while ((unsigned) (c - '0') <= 9
- && ndigits_total < MAX_STRING_DIGITS_128) {
- buffer[ndigits_total] = c;
+ /*&& ndigits_total < MAX_STRING_DIGITS_128*/) {
+ if(ndigits_total < MAX_FORMAT_DIGITS_128) buffer[ndigits_total] = c;
+ else if(ndigits_total < MAX_STRING_DIGITS_128) { buffer[ndigits_total] = c; }
+ else if(c>'0') { sticky_bit = 1; }
ps++;
c = *ps;
ndigits_total++;
@@ -594,57 +603,63 @@ bid128_from_string (char *ps _RND_MODE_PARAM _EXC_FLAGS_PARAM
coeff_l2 = coeff_low + coeff_low;
coeff_low = (coeff_l2 << 2) + coeff_l2 + buffer[i] - '0';
}
- switch(rnd_mode) {
- case ROUNDING_TO_NEAREST:
- carry = ((unsigned) ('4' - buffer[i])) >> 31;
- if ((buffer[i] == '5' && !(coeff_low & 1)) || dec_expon < 0) {
- if (dec_expon >= 0) {
- carry = 0;
- i++;
- }
- for (; i < ndigits_total; i++) {
- if (buffer[i] > '0') {
- carry = 1;
- break;
- }
+ switch(rnd_mode) {
+ case ROUNDING_TO_NEAREST:
+ carry = ((unsigned) ('4' - buffer[i])) >> 31;
+ if ((buffer[i] == '5' && !(coeff_low & 1) && !sticky_bit) || dec_expon < 0) {
+ if (dec_expon >= 0) {
+ carry = 0;
+ i++;
+ }
+ min_digits = MIN_DIGITS(ndigits_total, MAX_STRING_DIGITS_128);
+ for (carry=sticky_bit; (!carry) && (i < min_digits); i++) {
+ if (buffer[i] > '0') {
+ carry = 1;
+ break;
+ }
+ }
}
- }
- break;
-
- case ROUNDING_DOWN:
- if(sign_x)
- for (; i < ndigits_total; i++) {
- if (buffer[i] > '0') {
- carry = 1;
- break;
- }
+ break;
+
+ case ROUNDING_DOWN:
+ if(sign_x) {
+ min_digits = MIN_DIGITS(ndigits_total, MAX_STRING_DIGITS_128);
+ for (carry=sticky_bit; (!carry) && (i < min_digits); i++) {
+ if (buffer[i] > '0') {
+ carry = 1;
+ break;
+ }
+ }
}
- break;
- case ROUNDING_UP:
- if(!sign_x)
- for (; i < ndigits_total; i++) {
- if (buffer[i] > '0') {
- carry = 1;
- break;
- }
+ break;
+ case ROUNDING_UP:
+ if(!sign_x) {
+ min_digits = MIN_DIGITS(ndigits_total, MAX_STRING_DIGITS_128);
+ for (carry=sticky_bit; (!carry) && (i < min_digits); i++) {
+ if (buffer[i] > '0') {
+ carry = 1;
+ break;
+ }
+ }
}
- break;
- case ROUNDING_TO_ZERO:
- carry=0;
- break;
- case ROUNDING_TIES_AWAY:
- carry = ((unsigned) ('4' - buffer[i])) >> 31;
- if (dec_expon < 0) {
- for (; i < ndigits_total; i++) {
- if (buffer[i] > '0') {
- carry = 1;
- break;
- }
+ break;
+ case ROUNDING_TO_ZERO:
+ carry=0;
+ break;
+ case ROUNDING_TIES_AWAY:
+ carry = ((unsigned) ('4' - buffer[i])) >> 31;
+ if (dec_expon < 0) {
+ min_digits = MIN_DIGITS(ndigits_total, MAX_STRING_DIGITS_128);
+ for (carry=sticky_bit; (!carry) && (i < min_digits); i++) {
+ if (buffer[i] > '0') {
+ carry = 1;
+ break;
+ }
+ }
}
- }
- break;
-
- default: break; // default added to avoid compiler warning
+ break;
+
+ default: break; // default added to avoid compiler warning
}
// now form the coefficient as coeff_high*10^17+coeff_low+carry
scale_high = 100000000000000000ull;
@@ -656,7 +671,7 @@ bid128_from_string (char *ps _RND_MODE_PARAM _EXC_FLAGS_PARAM
}
if (dec_expon == -MAX_FORMAT_DIGITS_128
&& coeff_high > 50000000000000000ull)
- carry = 0;
+ carry = 0;
}
__mul_64x64_to_128_fast (CX, coeff_high, scale_high);
diff --git a/libgcc/config/libbid/bid128_to_int16.c b/libgcc/config/libbid/bid128_to_int16.c
index 3003450..8a27881 100644
--- a/libgcc/config/libbid/bid128_to_int16.c
+++ b/libgcc/config/libbid/bid128_to_int16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 cea5d0f..500d795 100644
--- a/libgcc/config/libbid/bid128_to_int32.c
+++ b/libgcc/config/libbid/bid128_to_int32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_internal.h"
/*****************************************************************************
- * BID128_to_int32_rnint
+ * BID128_to_int32_rnint
****************************************************************************/
BID128_FUNCTION_ARG1_NORND_CUSTOMRESTYPE (int, bid128_to_int32_rnint, x)
diff --git a/libgcc/config/libbid/bid128_to_int64.c b/libgcc/config/libbid/bid128_to_int64.c
index 19826c0..3744b36 100644
--- a/libgcc/config/libbid/bid128_to_int64.c
+++ b/libgcc/config/libbid/bid128_to_int64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -146,7 +146,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull) ||
// <=> 0.c(0)c(1)...c(q-1) * 10^20 > 0x50000000000000005, 1<=q<=34
C.w[1] = 0x0000000000000005ull;
C.w[0] = 0000000000000005ull;
- if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
+ if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
// 10^(20-q) is 64-bit, and so is C1
__mul_64x64_to_128MACH (C1, C1.w[0], ten2k64[20 - q]);
} else if (q == 20) {
@@ -179,14 +179,14 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull) ||
__mul_128x64_to_128 (C, ten2k64[q - 20], C); // max 47-bit x 67-bit
}
if (C1.w[1] > C.w[1] || (C1.w[1] == C.w[1] && C1.w[0] >= C.w[0])) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x8000000000000000ull;
BID_RETURN (res);
}
// else cases that can be rounded to a 64-bit int fall through
- // to '1 <= q + exp <= 19'
+ // to '1 <= q + exp <= 19'
}
}
// n is not too large to be converted to int64: -2^63-1/2 <= n < 2^63-1/2
@@ -445,7 +445,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^20 > 0x50000000000000005, 1<=q<=34
C.w[1] = 0x0000000000000005ull;
C.w[0] = 0000000000000005ull;
- if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
+ if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
// 10^(20-q) is 64-bit, and so is C1
__mul_64x64_to_128MACH (C1, C1.w[0], ten2k64[20 - q]);
} else if (q == 20) {
@@ -478,14 +478,14 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
__mul_128x64_to_128 (C, ten2k64[q - 20], C); // max 47-bit x 67-bit
}
if (C1.w[1] > C.w[1] || (C1.w[1] == C.w[1] && C1.w[0] >= C.w[0])) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x8000000000000000ull;
BID_RETURN (res);
}
// else cases that can be rounded to a 64-bit int fall through
- // to '1 <= q + exp <= 19'
+ // to '1 <= q + exp <= 19'
}
}
// n is not too large to be converted to int64: -2^63-1/2 <= n < 2^63-1/2
@@ -811,7 +811,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^20 > 0x50000000000000000, 1<=q<=34
C.w[1] = 0x0000000000000005ull;
C.w[0] = 0x0000000000000000ull;
- if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
+ if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
// 10^(20-q) is 64-bit, and so is C1
__mul_64x64_to_128MACH (C1, C1.w[0], ten2k64[20 - q]);
} else if (q == 20) {
@@ -844,14 +844,14 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
__mul_128x64_to_128 (C, ten2k64[q - 20], C); // max 47-bit x 67-bit
}
if (C1.w[1] > C.w[1] || (C1.w[1] == C.w[1] && C1.w[0] >= C.w[0])) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x8000000000000000ull;
BID_RETURN (res);
}
// else cases that can be rounded to a 64-bit int fall through
- // to '1 <= q + exp <= 19'
+ // to '1 <= q + exp <= 19'
}
}
// n is not too large to be converted to int64: -2^63-1 < n < 2^63
@@ -1098,7 +1098,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^20 > 0x50000000000000000, 1<=q<=34
C.w[1] = 0x0000000000000005ull;
C.w[0] = 0x0000000000000000ull;
- if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
+ if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
// 10^(20-q) is 64-bit, and so is C1
__mul_64x64_to_128MACH (C1, C1.w[0], ten2k64[20 - q]);
} else if (q == 20) {
@@ -1131,14 +1131,14 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
__mul_128x64_to_128 (C, ten2k64[q - 20], C); // max 47-bit x 67-bit
}
if (C1.w[1] > C.w[1] || (C1.w[1] == C.w[1] && C1.w[0] >= C.w[0])) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x8000000000000000ull;
BID_RETURN (res);
}
// else cases that can be rounded to a 64-bit int fall through
- // to '1 <= q + exp <= 19'
+ // to '1 <= q + exp <= 19'
}
}
// n is not too large to be converted to int64: -2^63-1 < n < 2^63
@@ -1393,7 +1393,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^20 > 0x5000000000000000a, 1<=q<=34
C.w[1] = 0x0000000000000005ull;
C.w[0] = 0x000000000000000aull;
- if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
+ if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
// 10^(20-q) is 64-bit, and so is C1
__mul_64x64_to_128MACH (C1, C1.w[0], ten2k64[20 - q]);
} else if (q == 20) {
@@ -1426,14 +1426,14 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
__mul_128x64_to_128 (C, ten2k64[q - 20], C); // max 47-bit x 67-bit
}
if (C1.w[1] > C.w[1] || (C1.w[1] == C.w[1] && C1.w[0] > C.w[0])) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x8000000000000000ull;
BID_RETURN (res);
}
// else cases that can be rounded to a 64-bit int fall through
- // to '1 <= q + exp <= 19'
+ // to '1 <= q + exp <= 19'
}
}
// n is not too large to be converted to int64: -2^63-1 < n <= 2^63 - 1
@@ -1679,7 +1679,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^20 > 0x5000000000000000a, 1<=q<=34
C.w[1] = 0x0000000000000005ull;
C.w[0] = 0x000000000000000aull;
- if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
+ if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
// 10^(20-q) is 64-bit, and so is C1
__mul_64x64_to_128MACH (C1, C1.w[0], ten2k64[20 - q]);
} else if (q == 20) {
@@ -1712,14 +1712,14 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
__mul_128x64_to_128 (C, ten2k64[q - 20], C); // max 47-bit x 67-bit
}
if (C1.w[1] > C.w[1] || (C1.w[1] == C.w[1] && C1.w[0] > C.w[0])) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x8000000000000000ull;
BID_RETURN (res);
}
// else cases that can be rounded to a 64-bit int fall through
- // to '1 <= q + exp <= 19'
+ // to '1 <= q + exp <= 19'
}
}
// n is not too large to be converted to int64: -2^63-1 < n <= 2^63 - 1
@@ -1973,7 +1973,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^20 >= 0x5000000000000000a, 1<=q<=34
C.w[1] = 0x0000000000000005ull;
C.w[0] = 0x000000000000000aull;
- if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
+ if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
// 10^(20-q) is 64-bit, and so is C1
__mul_64x64_to_128MACH (C1, C1.w[0], ten2k64[20 - q]);
} else if (q == 20) {
@@ -2006,14 +2006,14 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
__mul_128x64_to_128 (C, ten2k64[q - 20], C); // max 47-bit x 67-bit
}
if (C1.w[1] > C.w[1] || (C1.w[1] == C.w[1] && C1.w[0] >= C.w[0])) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x8000000000000000ull;
BID_RETURN (res);
}
// else cases that can be rounded to a 64-bit int fall through
- // to '1 <= q + exp <= 19'
+ // to '1 <= q + exp <= 19'
}
}
// n is not too large to be converted to int64: -2^63-1 < n < 2^63
@@ -2209,7 +2209,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^20 >= 0x5000000000000000a, 1<=q<=34
C.w[1] = 0x0000000000000005ull;
C.w[0] = 0x000000000000000aull;
- if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
+ if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
// 10^(20-q) is 64-bit, and so is C1
__mul_64x64_to_128MACH (C1, C1.w[0], ten2k64[20 - q]);
} else if (q == 20) {
@@ -2242,14 +2242,14 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
__mul_128x64_to_128 (C, ten2k64[q - 20], C); // max 47-bit x 67-bit
}
if (C1.w[1] > C.w[1] || (C1.w[1] == C.w[1] && C1.w[0] >= C.w[0])) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x8000000000000000ull;
BID_RETURN (res);
}
// else cases that can be rounded to a 64-bit int fall through
- // to '1 <= q + exp <= 19'
+ // to '1 <= q + exp <= 19'
}
}
// n is not too large to be converted to int64: -2^63-1 < n < 2^63
@@ -2484,7 +2484,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^20 >= 0x50000000000000005, 1<=q<=34
C.w[1] = 0x0000000000000005ull;
C.w[0] = 0000000000000005ull;
- if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
+ if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
// 10^(20-q) is 64-bit, and so is C1
__mul_64x64_to_128MACH (C1, C1.w[0], ten2k64[20 - q]);
} else if (q == 20) {
@@ -2517,14 +2517,14 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
__mul_128x64_to_128 (C, ten2k64[q - 20], C); // max 47-bit x 67-bit
}
if (C1.w[1] > C.w[1] || (C1.w[1] == C.w[1] && C1.w[0] >= C.w[0])) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x8000000000000000ull;
BID_RETURN (res);
}
// else cases that can be rounded to a 64-bit int fall through
- // to '1 <= q + exp <= 19'
+ // to '1 <= q + exp <= 19'
}
}
// n is not too large to be converted to int64: -2^63-1/2 <= n < 2^63-1/2
@@ -2763,7 +2763,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^20 >= 0x50000000000000005, 1<=q<=34
C.w[1] = 0x0000000000000005ull;
C.w[0] = 0000000000000005ull;
- if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
+ if (q <= 19) { // 1 <= q <= 19 => 1 <= 20-q <= 19 =>
// 10^(20-q) is 64-bit, and so is C1
__mul_64x64_to_128MACH (C1, C1.w[0], ten2k64[20 - q]);
} else if (q == 20) {
@@ -2796,14 +2796,14 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
__mul_128x64_to_128 (C, ten2k64[q - 20], C); // max 47-bit x 67-bit
}
if (C1.w[1] > C.w[1] || (C1.w[1] == C.w[1] && C1.w[0] >= C.w[0])) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x8000000000000000ull;
BID_RETURN (res);
}
// else cases that can be rounded to a 64-bit int fall through
- // to '1 <= q + exp <= 19'
+ // to '1 <= q + exp <= 19'
}
}
// n is not too large to be converted to int64: -2^63-1/2 <= n < 2^63-1/2
diff --git a/libgcc/config/libbid/bid128_to_int8.c b/libgcc/config/libbid/bid128_to_int8.c
index 4967fb5..905b34f 100644
--- a/libgcc/config/libbid/bid128_to_int8.c
+++ b/libgcc/config/libbid/bid128_to_int8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 812b285..13a2cab 100644
--- a/libgcc/config/libbid/bid128_to_uint16.c
+++ b/libgcc/config/libbid/bid128_to_uint16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 e039ee2..7b80510 100644
--- a/libgcc/config/libbid/bid128_to_uint32.c
+++ b/libgcc/config/libbid/bid128_to_uint32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -3097,8 +3097,8 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// res = 0
// else if x > 0
// res = +1
- // else // if x < 0
- // invalid exc
+ // else // if x < 0
+ // invalid exc
ind = q - 1;
if (ind <= 18) { // 0 <= ind <= 18
if ((C1.w[1] == 0) && (C1.w[0] < midpoint64[ind])) {
@@ -3404,8 +3404,8 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// res = 0
// else if x > 0
// res = +1
- // else // if x < 0
- // invalid exc
+ // else // if x < 0
+ // invalid exc
ind = q - 1;
if (ind <= 18) { // 0 <= ind <= 18
if ((C1.w[1] == 0) && (C1.w[0] < midpoint64[ind])) {
diff --git a/libgcc/config/libbid/bid128_to_uint64.c b/libgcc/config/libbid/bid128_to_uint64.c
index 7627624..5627703 100644
--- a/libgcc/config/libbid/bid128_to_uint64.c
+++ b/libgcc/config/libbid/bid128_to_uint64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -146,7 +146,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^21 > 0x05, 1<=q<=34
// <=> C * 10^(21-q) > 0x05, 1<=q<=34
if (q == 21) {
- // C > 5
+ // C > 5
if (C1.w[1] != 0 || C1.w[0] > 0x05ull) {
// set invalid flag
*pfpsf |= INVALID_EXCEPTION;
@@ -503,7 +503,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^21 > 0x05, 1<=q<=34
// <=> C * 10^(21-q) > 0x05, 1<=q<=34
if (q == 21) {
- // C > 5
+ // C > 5
if (C1.w[1] != 0 || C1.w[0] > 0x05ull) {
// set invalid flag
*pfpsf |= INVALID_EXCEPTION;
@@ -1477,7 +1477,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^21 >= 0x0a, 1<=q<=34
// <=> C * 10^(21-q) >= 0x0a, 1<=q<=34
if (q == 21) {
- // C >= a
+ // C >= a
if (C1.w[1] != 0 || C1.w[0] >= 0x0aull) {
// set invalid flag
*pfpsf |= INVALID_EXCEPTION;
@@ -1502,7 +1502,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// if n > 2^64 - 1 then n is too large
// <=> c(0)c(1)...c(19).c(20)...c(q-1) > 2^64 - 1
// <=> 0.c(0)c(1)...c(19)c(20)...c(q-1) * 10^20 > 2^64 - 1
- // <=> 0.c(0)c(1)...c(19)c(20)...c(q-1) * 10^21 > 10 * (2^64 - 1)
+ // <=> 0.c(0)c(1)...c(19)c(20)...c(q-1) * 10^21 > 10 * (2^64 - 1)
// <=> C * 10^(21-q) > 0x9fffffffffffffff6, 1<=q<=34
if (q == 1) {
// C * 10^20 > 0x9fffffffffffffff6
@@ -1811,7 +1811,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^21 >= 0x0a, 1<=q<=34
// <=> C * 10^(21-q) >= 0x0a, 1<=q<=34
if (q == 21) {
- // C >= a
+ // C >= a
if (C1.w[1] != 0 || C1.w[0] >= 0x0aull) {
// set invalid flag
*pfpsf |= INVALID_EXCEPTION;
@@ -1836,7 +1836,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// if n > 2^64 - 1 then n is too large
// <=> c(0)c(1)...c(19).c(20)...c(q-1) > 2^64 - 1
// <=> 0.c(0)c(1)...c(19)c(20)...c(q-1) * 10^20 > 2^64 - 1
- // <=> 0.c(0)c(1)...c(19)c(20)...c(q-1) * 10^21 > 10 * (2^64 - 1)
+ // <=> 0.c(0)c(1)...c(19)c(20)...c(q-1) * 10^21 > 10 * (2^64 - 1)
// <=> C * 10^(21-q) > 0x9fffffffffffffff6, 1<=q<=34
if (q == 1) {
// C * 10^20 > 0x9fffffffffffffff6
@@ -2153,7 +2153,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^21 >= 0x0a, 1<=q<=34
// <=> C * 10^(21-q) >= 0x0a, 1<=q<=34
if (q == 21) {
- // C >= a
+ // C >= a
if (C1.w[1] != 0 || C1.w[0] >= 0x0aull) {
// set invalid flag
*pfpsf |= INVALID_EXCEPTION;
@@ -2438,7 +2438,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^21 >= 0x0a, 1<=q<=34
// <=> C * 10^(21-q) >= 0x0a, 1<=q<=34
if (q == 21) {
- // C >= a
+ // C >= a
if (C1.w[1] != 0 || C1.w[0] >= 0x0aull) {
// set invalid flag
*pfpsf |= INVALID_EXCEPTION;
@@ -2762,7 +2762,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^21 >= 0x05, 1<=q<=34
// <=> C * 10^(21-q) >= 0x05, 1<=q<=34
if (q == 21) {
- // C >= 5
+ // C >= 5
if (C1.w[1] != 0 || C1.w[0] >= 0x05ull) {
// set invalid flag
*pfpsf |= INVALID_EXCEPTION;
@@ -3105,7 +3105,7 @@ if ((C1.w[1] > 0x0001ed09bead87c0ull)
// <=> 0.c(0)c(1)...c(q-1) * 10^21 >= 0x05, 1<=q<=34
// <=> C * 10^(21-q) >= 0x05, 1<=q<=34
if (q == 21) {
- // C >= 5
+ // C >= 5
if (C1.w[1] != 0 || C1.w[0] >= 0x05ull) {
// set invalid flag
*pfpsf |= INVALID_EXCEPTION;
diff --git a/libgcc/config/libbid/bid128_to_uint8.c b/libgcc/config/libbid/bid128_to_uint8.c
index f1251f5..9362118 100644
--- a/libgcc/config/libbid/bid128_to_uint8.c
+++ b/libgcc/config/libbid/bid128_to_uint8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 5b5ce95..1464ec2 100644
--- a/libgcc/config/libbid/bid32_to_bid128.c
+++ b/libgcc/config/libbid/bid32_to_bid128.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define BID_128RES
#include "bid_internal.h"
-/*
+/*
* Takes a BID32 as input and converts it to a BID128 and returns it.
*/
TYPE0_FUNCTION_ARGTYPE1_NORND (UINT128, bid32_to_bid128, UINT32, x)
diff --git a/libgcc/config/libbid/bid32_to_bid64.c b/libgcc/config/libbid/bid32_to_bid64.c
index 61b24b2..5e9f68c 100644
--- a/libgcc/config/libbid/bid32_to_bid64.c
+++ b/libgcc/config/libbid/bid32_to_bid64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -159,7 +159,7 @@ bid64_to_bid32 (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
if (rmode == 0) //ROUNDING_TO_NEAREST
#endif
if (coefficient_x & 1) {
- // check whether fractional part of initial_P/10^extra_digits
+ // check whether fractional part of initial_P/10^extra_digits
// is exactly .5
// get remainder
diff --git a/libgcc/config/libbid/bid64_add.c b/libgcc/config/libbid/bid64_add.c
index b303b91..7b25db82 100644
--- a/libgcc/config/libbid/bid64_add.c
+++ b/libgcc/config/libbid/bid64_add.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -50,7 +50,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
* else
* add sign_a*coefficient_a*10^diff_expon, sign_b*coefficient_b
* in 128-bit integer arithmetic, then round to 16 decimal digits
- *
+ *
*
****************************************************************************/
@@ -460,10 +460,10 @@ bid64_add (UINT64 x,
amount = short_recip_scale[extra_digits];
C0_64 = CT.w[1] >> amount;
- // result coefficient
+ // result coefficient
C64 = C0_64 + coefficient_a;
// filter out difficult (corner) cases
- // this test ensures the number of digits in coefficient_a does not change
+ // this test ensures the number of digits in coefficient_a does not change
// after adding (the appropriately scaled and rounded) coefficient_b
if ((UINT64) (C64 - 1000000000000000ull - 1) >
9000000000000000ull - 2) {
@@ -499,7 +499,7 @@ bid64_add (UINT64 x,
amount = short_recip_scale[extra_digits];
C0_64 = CT.w[1] >> amount;
- // result coefficient
+ // result coefficient
C64 = C0_64 + coefficient_a;
} else if (C64 <= 1000000000000000ull) {
// less than 16 digits in result
@@ -520,7 +520,7 @@ bid64_add (UINT64 x,
amount = short_recip_scale[extra_digits];
C0_64 = CT_new.w[1] >> amount;
- // result coefficient
+ // result coefficient
C64_new = C0_64 + coefficient_a;
if (C64_new < 10000000000000000ull) {
C64 = C64_new;
@@ -540,9 +540,9 @@ bid64_add (UINT64 x,
if (rmode == 0) //ROUNDING_TO_NEAREST
#endif
if (C64 & 1) {
- // check whether fractional part of initial_P/10^extra_digits is
+ // check whether fractional part of initial_P/10^extra_digits is
// exactly .5
- // this is the same as fractional part of
+ // this is the same as fractional part of
// (initial_P + 0.5*10^extra_digits)/10^extra_digits is exactly zero
// get remainder
diff --git a/libgcc/config/libbid/bid64_compare.c b/libgcc/config/libbid/bid64_compare.c
index aebb5ce..637682f 100644
--- a/libgcc/config/libbid/bid64_compare.c
+++ b/libgcc/config/libbid/bid64_compare.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -51,7 +51,7 @@ bid64_quiet_equal (UINT64 x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y, lcv;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x & MASK_NAN) == MASK_NAN) || ((y & MASK_NAN) == MASK_NAN)) {
if ((x & MASK_SNAN) == MASK_SNAN || (y & MASK_SNAN) == MASK_SNAN) {
@@ -107,7 +107,7 @@ bid64_quiet_equal (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -171,7 +171,7 @@ bid64_quiet_greater (UINT64 x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered, rather than equal :
+ // if either number is NAN, the comparison is unordered, rather than equal :
// return 0
if (((x & MASK_NAN) == MASK_NAN) || ((y & MASK_NAN) == MASK_NAN)) {
if ((x & MASK_SNAN) == MASK_SNAN || (y & MASK_SNAN) == MASK_SNAN) {
@@ -193,7 +193,7 @@ bid64_quiet_greater (UINT64 x,
res = 0;
BID_RETURN (res);
} else {
- // x is pos infinity, it is greater, unless y is positive
+ // x is pos infinity, it is greater, unless y is positive
// infinity => return y!=pos_infinity
res = (((y & MASK_INF) != MASK_INF)
|| ((y & MASK_SIGN) == MASK_SIGN));
@@ -236,7 +236,7 @@ bid64_quiet_greater (UINT64 x,
// ZERO (CASE4)
// some properties:
//(+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- //(ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore ignore the
+ //(ZERO x 10^A == ZERO x 10^B) for any valid A, B => therefore ignore the
// exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -265,7 +265,7 @@ bid64_quiet_greater (UINT64 x,
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x > sig_y && exp_x > exp_y) {
res = ((x & MASK_SIGN) != MASK_SIGN);
@@ -309,7 +309,7 @@ bid64_quiet_greater (UINT64 x,
// adjust the y significand upwards
__mul_64x64_to_128MACH (sig_n_prime, sig_y,
mult_factor[exp_y - exp_x]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_x)) {
res = 0;
@@ -406,7 +406,7 @@ bid64_quiet_greater_equal (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -465,7 +465,7 @@ bid64_quiet_greater_equal (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if postitive, return whichever significand abs is smaller
+ // if postitive, return whichever significand abs is smaller
// (converse if negative)
res = (((sig_n_prime.w[1] == 0)
&& sig_n_prime.w[0] < sig_y) ^ ((x & MASK_SIGN) !=
@@ -480,7 +480,7 @@ bid64_quiet_greater_equal (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if positive, return whichever significand abs is smaller
+ // if positive, return whichever significand abs is smaller
// (converse if negative)
res = (((sig_n_prime.w[1] > 0)
|| (sig_x < sig_n_prime.w[0])) ^ ((x & MASK_SIGN) !=
@@ -509,7 +509,7 @@ bid64_quiet_greater_unordered (UINT64 x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered, rather than equal :
+ // if either number is NAN, the comparison is unordered, rather than equal :
// return 0
if (((x & MASK_NAN) == MASK_NAN) || ((y & MASK_NAN) == MASK_NAN)) {
if ((x & MASK_SNAN) == MASK_SNAN || (y & MASK_SNAN) == MASK_SNAN) {
@@ -531,7 +531,7 @@ bid64_quiet_greater_unordered (UINT64 x,
res = 0;
BID_RETURN (res);
} else {
- // x is pos infinity, it is greater, unless y is positive infinity =>
+ // x is pos infinity, it is greater, unless y is positive infinity =>
// return y!=pos_infinity
res = (((y & MASK_INF) != MASK_INF)
|| ((y & MASK_SIGN) == MASK_SIGN));
@@ -574,7 +574,7 @@ bid64_quiet_greater_unordered (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -628,7 +628,7 @@ bid64_quiet_greater_unordered (UINT64 x,
// otherwise adjust the x significand upwards
__mul_64x64_to_128MACH (sig_n_prime, sig_x,
mult_factor[exp_x - exp_y]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_y)) {
res = 0;
@@ -657,7 +657,7 @@ bid64_quiet_greater_unordered (UINT64 x,
void
bid64_quiet_less (int *pres, UINT64 * px,
UINT64 *
- py _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
+ py _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
{
UINT64 x = *px;
UINT64 y = *py;
@@ -739,7 +739,7 @@ bid64_quiet_less (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -768,7 +768,7 @@ bid64_quiet_less (UINT64 x,
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x > sig_y && exp_x >= exp_y) {
res = ((x & MASK_SIGN) == MASK_SIGN);
@@ -799,7 +799,7 @@ bid64_quiet_less (UINT64 x,
res = 0;
BID_RETURN (res);
}
- // if postitive, return whichever significand abs is smaller
+ // if postitive, return whichever significand abs is smaller
// (converse if negative)
res = (((sig_n_prime.w[1] == 0)
&& sig_n_prime.w[0] < sig_y) ^ ((x & MASK_SIGN) ==
@@ -814,7 +814,7 @@ bid64_quiet_less (UINT64 x,
res = 0;
BID_RETURN (res);
}
- // if positive, return whichever significand abs is smaller
+ // if positive, return whichever significand abs is smaller
// (converse if negative)
res = (((sig_n_prime.w[1] > 0)
|| (sig_x < sig_n_prime.w[0])) ^ ((x & MASK_SIGN) ==
@@ -843,7 +843,7 @@ bid64_quiet_less_equal (UINT64 x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered, rather than equal :
+ // if either number is NAN, the comparison is unordered, rather than equal :
// return 0
if (((x & MASK_NAN) == MASK_NAN) || ((y & MASK_NAN) == MASK_NAN)) {
if ((x & MASK_SNAN) == MASK_SNAN || (y & MASK_SNAN) == MASK_SNAN) {
@@ -865,7 +865,7 @@ bid64_quiet_less_equal (UINT64 x,
res = 1;
BID_RETURN (res);
} else {
- // x is pos infinity, it is greater, unless y is positive infinity =>
+ // x is pos infinity, it is greater, unless y is positive infinity =>
// return y==pos_infinity
res = !(((y & MASK_INF) != MASK_INF)
|| ((y & MASK_SIGN) == MASK_SIGN));
@@ -908,7 +908,7 @@ bid64_quiet_less_equal (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -967,7 +967,7 @@ bid64_quiet_less_equal (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if postitive, return whichever significand abs is smaller
+ // if postitive, return whichever significand abs is smaller
// (converse if negative)
res = (((sig_n_prime.w[1] == 0)
&& sig_n_prime.w[0] < sig_y) ^ ((x & MASK_SIGN) ==
@@ -982,7 +982,7 @@ bid64_quiet_less_equal (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if positive, return whichever significand abs is smaller
+ // if positive, return whichever significand abs is smaller
// (converse if negative)
res = (((sig_n_prime.w[1] > 0)
|| (sig_x < sig_n_prime.w[0])) ^ ((x & MASK_SIGN) ==
@@ -1076,7 +1076,7 @@ bid64_quiet_less_unordered (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -1135,7 +1135,7 @@ bid64_quiet_less_unordered (UINT64 x,
res = 0;
BID_RETURN (res);
}
- // if postitive, return whichever significand abs is smaller
+ // if postitive, return whichever significand abs is smaller
// (converse if negative)
res = (((sig_n_prime.w[1] == 0)
&& sig_n_prime.w[0] < sig_y) ^ ((x & MASK_SIGN) ==
@@ -1150,7 +1150,7 @@ bid64_quiet_less_unordered (UINT64 x,
res = 0;
BID_RETURN (res);
}
- // if positive, return whichever significand abs is smaller
+ // if positive, return whichever significand abs is smaller
// (converse if negative)
res = (((sig_n_prime.w[1] > 0)
|| (sig_x < sig_n_prime.w[0])) ^ ((x & MASK_SIGN) ==
@@ -1178,7 +1178,7 @@ bid64_quiet_not_equal (UINT64 x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y, lcv;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 1
if (((x & MASK_NAN) == MASK_NAN) || ((y & MASK_NAN) == MASK_NAN)) {
if ((x & MASK_SNAN) == MASK_SNAN || (y & MASK_SNAN) == MASK_SNAN) {
@@ -1236,7 +1236,7 @@ bid64_quiet_not_equal (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -1309,7 +1309,7 @@ bid64_quiet_not_greater (UINT64 x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x & MASK_NAN) == MASK_NAN) || ((y & MASK_NAN) == MASK_NAN)) {
if ((x & MASK_SNAN) == MASK_SNAN || (y & MASK_SNAN) == MASK_SNAN) {
@@ -1331,7 +1331,7 @@ bid64_quiet_not_greater (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // x is pos infinity, it is greater, unless y is positive
+ // x is pos infinity, it is greater, unless y is positive
// infinity => return y==pos_infinity
else {
res = !(((y & MASK_INF) != MASK_INF)
@@ -1378,9 +1378,9 @@ bid64_quiet_not_greater (UINT64 x,
// ZERO (CASE4)
// some properties:
- // (+ZERO==-ZERO) => therefore ignore the sign, and neither
+ // (+ZERO==-ZERO) => therefore ignore the sign, and neither
// number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -1444,7 +1444,7 @@ bid64_quiet_not_greater (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if postitive, return whichever significand abs is smaller
+ // if postitive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] == 0)
@@ -1462,7 +1462,7 @@ bid64_quiet_not_greater (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if positive, return whichever significand abs is smaller
+ // if positive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] > 0)
@@ -1563,9 +1563,9 @@ bid64_quiet_not_less (UINT64 x,
// ZERO (CASE4)
// some properties:
- // (+ZERO==-ZERO) => therefore ignore the sign, and neither
+ // (+ZERO==-ZERO) => therefore ignore the sign, and neither
// number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -1629,7 +1629,7 @@ bid64_quiet_not_less (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if postitive, return whichever significand abs is smaller
+ // if postitive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] == 0)
@@ -1647,7 +1647,7 @@ bid64_quiet_not_less (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if positive, return whichever significand abs is smaller
+ // if positive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] > 0)
@@ -1704,7 +1704,7 @@ bid64_quiet_unordered (UINT64 x,
int res;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x & MASK_NAN) == MASK_NAN) || ((y & MASK_NAN) == MASK_NAN)) {
if ((x & MASK_SNAN) == MASK_SNAN || (y & MASK_SNAN) == MASK_SNAN) {
@@ -1739,7 +1739,7 @@ bid64_signaling_greater (UINT64 x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x & MASK_NAN) == MASK_NAN) || ((y & MASK_NAN) == MASK_NAN)) {
*pfpsf |= INVALID_EXCEPTION; // set invalid exception if NaN
@@ -1759,7 +1759,7 @@ bid64_signaling_greater (UINT64 x,
res = 0;
BID_RETURN (res);
}
- // x is pos infinity, it is greater,
+ // x is pos infinity, it is greater,
// unless y is positive infinity => return y!=pos_infinity
else {
res = (((y & MASK_INF) != MASK_INF)
@@ -1807,7 +1807,7 @@ bid64_signaling_greater (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -1868,7 +1868,7 @@ bid64_signaling_greater (UINT64 x,
mult_factor[exp_x - exp_y]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_y)) {
res = 0;
@@ -1886,7 +1886,7 @@ bid64_signaling_greater (UINT64 x,
__mul_64x64_to_128MACH (sig_n_prime, sig_y,
mult_factor[exp_y - exp_x]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_x)) {
res = 0;
@@ -1990,7 +1990,7 @@ bid64_signaling_greater_equal (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -2054,7 +2054,7 @@ bid64_signaling_greater_equal (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if postitive, return whichever significand abs is smaller
+ // if postitive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] == 0)
@@ -2072,7 +2072,7 @@ bid64_signaling_greater_equal (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if positive, return whichever significand abs is smaller
+ // if positive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] > 0)
@@ -2103,7 +2103,7 @@ bid64_signaling_greater_unordered (UINT64 x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x & MASK_NAN) == MASK_NAN) || ((y & MASK_NAN) == MASK_NAN)) {
*pfpsf |= INVALID_EXCEPTION; // set invalid exception if NaN
@@ -2123,7 +2123,7 @@ bid64_signaling_greater_unordered (UINT64 x,
res = 0;
BID_RETURN (res);
}
- // x is pos infinity, it is greater,
+ // x is pos infinity, it is greater,
// unless y is positive infinity => return y!=pos_infinity
else {
res = (((y & MASK_INF) != MASK_INF)
@@ -2171,7 +2171,7 @@ bid64_signaling_greater_unordered (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -2231,7 +2231,7 @@ bid64_signaling_greater_unordered (UINT64 x,
__mul_64x64_to_128MACH (sig_n_prime, sig_x,
mult_factor[exp_x - exp_y]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_y)) {
res = 0;
@@ -2249,7 +2249,7 @@ bid64_signaling_greater_unordered (UINT64 x,
__mul_64x64_to_128MACH (sig_n_prime, sig_y,
mult_factor[exp_y - exp_x]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_x)) {
res = 0;
@@ -2353,7 +2353,7 @@ bid64_signaling_less (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -2417,7 +2417,7 @@ bid64_signaling_less (UINT64 x,
res = 0;
BID_RETURN (res);
}
- // if postitive, return whichever significand abs is smaller
+ // if postitive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] == 0)
@@ -2435,7 +2435,7 @@ bid64_signaling_less (UINT64 x,
res = 0;
BID_RETURN (res);
}
- // if positive, return whichever significand abs is smaller
+ // if positive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] > 0)
@@ -2466,7 +2466,7 @@ bid64_signaling_less_equal (UINT64 x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x & MASK_NAN) == MASK_NAN) || ((y & MASK_NAN) == MASK_NAN)) {
*pfpsf |= INVALID_EXCEPTION; // set invalid exception if NaN
@@ -2486,7 +2486,7 @@ bid64_signaling_less_equal (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // x is pos infinity, it is greater,
+ // x is pos infinity, it is greater,
// unless y is positive infinity => return y==pos_infinity
else {
res = !(((y & MASK_INF) != MASK_INF)
@@ -2534,7 +2534,7 @@ bid64_signaling_less_equal (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -2598,7 +2598,7 @@ bid64_signaling_less_equal (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if postitive, return whichever significand abs is smaller
+ // if postitive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] == 0)
@@ -2616,7 +2616,7 @@ bid64_signaling_less_equal (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if positive, return whichever significand abs is smaller
+ // if positive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] > 0)
@@ -2716,7 +2716,7 @@ bid64_signaling_less_unordered (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -2780,7 +2780,7 @@ bid64_signaling_less_unordered (UINT64 x,
res = 0;
BID_RETURN (res);
}
- // if postitive, return whichever significand abs is smaller
+ // if postitive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] == 0)
@@ -2798,7 +2798,7 @@ bid64_signaling_less_unordered (UINT64 x,
res = 0;
BID_RETURN (res);
}
- // if positive, return whichever significand abs is smaller
+ // if positive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] > 0)
@@ -2829,7 +2829,7 @@ bid64_signaling_not_greater (UINT64 x,
char x_is_zero = 0, y_is_zero = 0, non_canon_x, non_canon_y;
// NaN (CASE1)
- // if either number is NAN, the comparison is unordered,
+ // if either number is NAN, the comparison is unordered,
// rather than equal : return 0
if (((x & MASK_NAN) == MASK_NAN) || ((y & MASK_NAN) == MASK_NAN)) {
*pfpsf |= INVALID_EXCEPTION; // set invalid exception if NaN
@@ -2849,7 +2849,7 @@ bid64_signaling_not_greater (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // x is pos infinity, it is greater,
+ // x is pos infinity, it is greater,
// unless y is positive infinity => return y==pos_infinity
else {
res = !(((y & MASK_INF) != MASK_INF)
@@ -2897,7 +2897,7 @@ bid64_signaling_not_greater (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -2961,7 +2961,7 @@ bid64_signaling_not_greater (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if postitive, return whichever significand abs is smaller
+ // if postitive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] == 0)
@@ -2979,7 +2979,7 @@ bid64_signaling_not_greater (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if positive, return whichever significand abs is smaller
+ // if positive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] > 0)
@@ -3079,7 +3079,7 @@ bid64_signaling_not_less (UINT64 x,
// ZERO (CASE4)
// some properties:
// (+ZERO==-ZERO) => therefore ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// therefore ignore the exponent field
// (Any non-canonical # is considered 0)
if (non_canon_x || sig_x == 0) {
@@ -3143,7 +3143,7 @@ bid64_signaling_not_less (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if postitive, return whichever significand abs is smaller
+ // if postitive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] == 0)
@@ -3161,7 +3161,7 @@ bid64_signaling_not_less (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if positive, return whichever significand abs is smaller
+ // if positive, return whichever significand abs is smaller
// (converse if negative)
{
res = (((sig_n_prime.w[1] > 0)
diff --git a/libgcc/config/libbid/bid64_div.c b/libgcc/config/libbid/bid64_div.c
index 4373e6c..6975848 100644
--- a/libgcc/config/libbid/bid64_div.c
+++ b/libgcc/config/libbid/bid64_div.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -34,7 +34,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
* CA= A*10^(15+j), j=0 for A>=B, 1 otherwise
* Q = 0
* else
- * get Q=(int)(coefficient_x/coefficient_y)
+ * get Q=(int)(coefficient_x/coefficient_y)
* (based on double precision divide)
* check for exact divide case
* Let R = coefficient_x - Q*coefficient_y
@@ -44,8 +44,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
* endif
* if (CA<2^64)
* Q += CA/B (64-bit unsigned divide)
- * else
- * get final Q using double precision divide, followed by 3 integer
+ * else
+ * get final Q using double precision divide, followed by 3 integer
* iterations
* if exact result, eliminate trailing zeros
* check for underflow
@@ -129,7 +129,7 @@ bid64_div (UINT64 x,
if ((x & INFINITY_MASK64) == INFINITY_MASK64) {
// check if y is Inf or NaN
if ((y & INFINITY_MASK64) == INFINITY_MASK64) {
- // y==Inf, return NaN
+ // y==Inf, return NaN
if ((y & NAN_MASK64) == INFINITY_MASK64) { // Inf/Inf
#ifdef SET_STATUS_FLAGS
__set_status_flags (pfpsf, INVALID_EXCEPTION);
@@ -551,7 +551,7 @@ if (!unpack_BID64 (&sign_x, &exponent_x, &CX.w[0], (x))) {
if (((x) & 0x7800000000000000ull) == 0x7800000000000000ull) {
// check if y is Inf.
if (((y.w[1] & 0x7c00000000000000ull) == 0x7800000000000000ull))
- // return NaN
+ // return NaN
{
#ifdef SET_STATUS_FLAGS
__set_status_flags (pfpsf, INVALID_EXCEPTION);
@@ -717,7 +717,7 @@ if (!done) {
__div_256_by_128 (&CQ, &CA4, CY);
}
-
+
#ifdef SET_STATUS_FLAGS
if (CA4.w[0] || CA4.w[1]) {
@@ -894,11 +894,11 @@ if (!done) {
CQ.w[0]++;
if (!CQ.w[0])
CQ.w[1]++;
- break;
+ break;
}
#endif
#endif
-
+
res =
fast_get_BID64_check_OF (sign_x ^ sign_y, diff_expon, CQ.w[0], rnd_mode,
pfpsf);
@@ -970,7 +970,7 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) {
if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) {
// check if y is Inf.
if (((y & 0x7c00000000000000ull) == 0x7800000000000000ull))
- // return NaN
+ // return NaN
{
#ifdef SET_STATUS_FLAGS
__set_status_flags (pfpsf, INVALID_EXCEPTION);
@@ -1120,7 +1120,7 @@ if (__unsigned_compare_gt_128 (CY, CX)) {
CQ.w[0] = (P256.w[2] >> amount) | (P256.w[3] << (64 - amount));
CQ.w[1] = 0;
- __mul_64x64_to_128 (CQ2, CQ.w[0], (power10_table_128[ed2].w[0]));
+ __mul_64x64_to_128 (CQ2, CQ.w[0], (power10_table_128[ed2].w[0]));
__mul_64x64_to_128 (QB256, CQ2.w[0], CY.w[0]);
QB256.w[1] += CQ2.w[0] * CY.w[1] + CQ2.w[1] * CY.w[0];
@@ -1150,7 +1150,7 @@ if (!done) {
__set_status_flags (pfpsf, INEXACT_EXCEPTION);
}
#ifndef LEAVE_TRAILING_ZEROS
- else
+ else
#endif
#else
#ifndef LEAVE_TRAILING_ZEROS
@@ -1330,7 +1330,7 @@ if (!done) {
#endif
#endif
-
+
res =
fast_get_BID64_check_OF (sign_x ^ sign_y, diff_expon, CQ.w[0], rnd_mode,
pfpsf);
@@ -1366,7 +1366,7 @@ extern SINT8 factors[][2];
extern UINT8 packed_10000_zeros[];
-//UINT64* bid64_div128x128(UINT64 res, UINT128 *px, UINT128 *py, unsigned rnd_mode, unsigned *pfpsf)
+//UINT64* bid64_div128x128(UINT64 res, UINT128 *px, UINT128 *py, unsigned rnd_mode, unsigned *pfpsf)
TYPE0_FUNCTION_ARG128_ARG128 (UINT64, bid64qq_div, x, y)
UINT256 CA4 =
@@ -1407,7 +1407,7 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) {
if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) {
// check if y is Inf.
if (((y.w[1] & 0x7c00000000000000ull) == 0x7800000000000000ull))
- // return NaN
+ // return NaN
{
#ifdef SET_STATUS_FLAGS
__set_status_flags (pfpsf, INVALID_EXCEPTION);
@@ -1576,7 +1576,7 @@ if (!done) {
__div_256_by_128 (&CQ, &CA4, CY);
}
-
+
#ifdef SET_STATUS_FLAGS
if (CA4.w[0] || CA4.w[1]) {
@@ -1584,7 +1584,7 @@ if (!done) {
__set_status_flags (pfpsf, INEXACT_EXCEPTION);
}
#ifndef LEAVE_TRAILING_ZEROS
- else
+ else
#endif
#else
#ifndef LEAVE_TRAILING_ZEROS
@@ -1765,7 +1765,7 @@ if (!done) {
#endif
#endif
-
+
res =
fast_get_BID64_check_OF (sign_x ^ sign_y, diff_expon, CQ.w[0], rnd_mode,
pfpsf);
diff --git a/libgcc/config/libbid/bid64_fma.c b/libgcc/config/libbid/bid64_fma.c
index 8bf6cc0..c1f37d1 100644
--- a/libgcc/config/libbid/bid64_fma.c
+++ b/libgcc/config/libbid/bid64_fma.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,9 +29,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
*
* if multiplication is guranteed exact (short coefficients)
* call the unpacked arg. equivalent of bid64_add(x*y, z)
- * else
+ * else
* get full coefficient_x*coefficient_y product
- * call subroutine to perform addition of 64-bit argument
+ * call subroutine to perform addition of 64-bit argument
* to 128-bit product
*
****************************************************************************/
@@ -174,7 +174,7 @@ bid64_fma (UINT64 x, UINT64 y,
// test if z is Inf of oposite sign
if (((z & 0x7c00000000000000ull) == 0x7800000000000000ull)
&& (((x ^ y) ^ z) & 0x8000000000000000ull)) {
- // return NaN
+ // return NaN
#ifdef SET_STATUS_FLAGS
__set_status_flags (pfpsf, INVALID_EXCEPTION);
#endif
@@ -228,7 +228,7 @@ bid64_fma (UINT64 x, UINT64 y,
BID_RETURN (((x ^ y) & 0x8000000000000000ull) |
0x7800000000000000ull);
}
- // y is 0
+ // y is 0
if (((z & 0x7800000000000000ull) != 0x7800000000000000ull)) {
if (coefficient_z) {
@@ -288,7 +288,7 @@ bid64_fma (UINT64 x, UINT64 y,
tempy.d = (double) coefficient_y;
bin_expon_cy = ((tempy.i & MASK_BINARY_EXPONENT) >> 52);
- // magnitude estimate for coefficient_x*coefficient_y is
+ // magnitude estimate for coefficient_x*coefficient_y is
// 2^(unbiased_bin_expon_cx + unbiased_bin_expon_cx)
bin_expon_product = bin_expon_cx + bin_expon_cy;
@@ -498,8 +498,8 @@ bid64_fma (UINT64 x, UINT64 y,
res =
get_add64 (sign_x ^ sign_y,
- exponent_x + exponent_y - DECIMAL_EXPONENT_BIAS, C64,
- sign_z, exponent_z, coefficient_z,
+ exponent_x + exponent_y - DECIMAL_EXPONENT_BIAS, C64,
+ sign_z, exponent_z, coefficient_z,
rnd_mode, pfpsf);
BID_RETURN (res);
}
diff --git a/libgcc/config/libbid/bid64_logb.c b/libgcc/config/libbid/bid64_logb.c
index d43ce89..d7e5a16 100644
--- a/libgcc/config/libbid/bid64_logb.c
+++ b/libgcc/config/libbid/bid64_logb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 f7c8e55..9088976 100644
--- a/libgcc/config/libbid/bid64_minmax.c
+++ b/libgcc/config/libbid/bid64_minmax.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -68,7 +68,7 @@ bid64_minnum (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// non-canonical
x = (x & MASK_SIGN) | ((x & MASK_BINARY_EXPONENT2) << 2);
} // else canonical
- } // else canonical
+ } // else canonical
}
// check for non-canonical y
@@ -164,9 +164,9 @@ bid64_minnum (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// ZERO (CASE4)
// some properties:
- // (+ZERO == -ZERO) => therefore
+ // (+ZERO == -ZERO) => therefore
// ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (sig_x == 0) {
@@ -197,7 +197,7 @@ bid64_minnum (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x > sig_y && exp_x >= exp_y) {
res = ((x & MASK_SIGN) != MASK_SIGN) ? y : x;
@@ -223,7 +223,7 @@ bid64_minnum (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// otherwise adjust the x significand upwards
__mul_64x64_to_128MACH (sig_n_prime, sig_x,
mult_factor[exp_x - exp_y]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_y)) {
res = y;
@@ -287,7 +287,7 @@ bid64_minnum_mag (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// non-canonical
x = (x & MASK_SIGN) | ((x & MASK_BINARY_EXPONENT2) << 2);
} // else canonical
- } // else canonical
+ } // else canonical
}
// check for non-canonical y
@@ -377,9 +377,9 @@ bid64_minnum_mag (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// ZERO (CASE4)
// some properties:
- // (+ZERO == -ZERO) => therefore
+ // (+ZERO == -ZERO) => therefore
// ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (sig_x == 0) {
@@ -391,7 +391,7 @@ bid64_minnum_mag (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x > sig_y && exp_x >= exp_y) {
res = y;
@@ -416,14 +416,14 @@ bid64_minnum_mag (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// otherwise adjust the x significand upwards
__mul_64x64_to_128MACH (sig_n_prime, sig_x,
mult_factor[exp_x - exp_y]);
- // now, sig_n_prime has: sig_x * 10^(exp_x-exp_y), this is
+ // now, sig_n_prime has: sig_x * 10^(exp_x-exp_y), this is
// the compensated signif.
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_y)) {
// two numbers are equal, return minNum(x,y)
res = ((y & MASK_SIGN) == MASK_SIGN) ? y : x;
BID_RETURN (res);
}
- // now, if compensated_x (sig_n_prime) is greater than y, return y,
+ // now, if compensated_x (sig_n_prime) is greater than y, return y,
// otherwise return x
res = ((sig_n_prime.w[1] != 0) || sig_n_prime.w[0] > sig_y) ? y : x;
BID_RETURN (res);
@@ -479,7 +479,7 @@ bid64_maxnum (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// non-canonical
x = (x & MASK_SIGN) | ((x & MASK_BINARY_EXPONENT2) << 2);
} // else canonical
- } // else canonical
+ } // else canonical
}
// check for non-canonical y
@@ -540,7 +540,7 @@ bid64_maxnum (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// INFINITY (CASE3)
if ((x & MASK_INF) == MASK_INF) {
// if x is neg infinity, there is no way it is greater than y, return y
- // x is pos infinity, it is greater, unless y is positive infinity =>
+ // x is pos infinity, it is greater, unless y is positive infinity =>
// return y!=pos_infinity
if (((x & MASK_SIGN) == MASK_SIGN)) {
res = y;
@@ -576,9 +576,9 @@ bid64_maxnum (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// ZERO (CASE4)
// some properties:
- // (+ZERO == -ZERO) => therefore
+ // (+ZERO == -ZERO) => therefore
// ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (sig_x == 0) {
@@ -609,7 +609,7 @@ bid64_maxnum (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x > sig_y && exp_x >= exp_y) {
res = ((x & MASK_SIGN) != MASK_SIGN) ? x : y;
@@ -635,7 +635,7 @@ bid64_maxnum (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// otherwise adjust the x significand upwards
__mul_64x64_to_128MACH (sig_n_prime, sig_x,
mult_factor[exp_x - exp_y]);
- // if postitive, return whichever significand is larger
+ // if postitive, return whichever significand is larger
// (converse if negative)
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_y)) {
res = y;
@@ -698,7 +698,7 @@ bid64_maxnum_mag (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// non-canonical
x = (x & MASK_SIGN) | ((x & MASK_BINARY_EXPONENT2) << 2);
} // else canonical
- } // else canonical
+ } // else canonical
}
// check for non-canonical y
@@ -788,9 +788,9 @@ bid64_maxnum_mag (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// ZERO (CASE4)
// some properties:
- // (+ZERO == -ZERO) => therefore
+ // (+ZERO == -ZERO) => therefore
// ignore the sign, and neither number is greater
- // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
+ // (ZERO x 10^A == ZERO x 10^B) for any valid A, B =>
// ignore the exponent field
// (Any non-canonical # is considered 0)
if (sig_x == 0) {
@@ -802,7 +802,7 @@ bid64_maxnum_mag (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x > sig_y && exp_x >= exp_y) {
res = x;
@@ -827,14 +827,14 @@ bid64_maxnum_mag (UINT64 x, UINT64 y _EXC_FLAGS_PARAM) {
// otherwise adjust the x significand upwards
__mul_64x64_to_128MACH (sig_n_prime, sig_x,
mult_factor[exp_x - exp_y]);
- // now, sig_n_prime has: sig_x * 10^(exp_x-exp_y),
+ // now, sig_n_prime has: sig_x * 10^(exp_x-exp_y),
// this is the compensated signif.
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_y)) {
// two numbers are equal, return maxNum(x,y)
res = ((y & MASK_SIGN) == MASK_SIGN) ? x : y;
BID_RETURN (res);
}
- // now, if compensated_x (sig_n_prime) is greater than y return y,
+ // now, if compensated_x (sig_n_prime) is greater than y return y,
// otherwise return x
res = ((sig_n_prime.w[1] != 0) || sig_n_prime.w[0] > sig_y) ? x : y;
BID_RETURN (res);
diff --git a/libgcc/config/libbid/bid64_mul.c b/libgcc/config/libbid/bid64_mul.c
index f6bedfb..5bfb9ea 100644
--- a/libgcc/config/libbid/bid64_mul.c
+++ b/libgcc/config/libbid/bid64_mul.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -34,9 +34,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
* else
* get long product: coefficient_x*coefficient_y
* determine number of digits to round off (extra_digits)
- * rounding is performed as a 128x128-bit multiplication by
+ * rounding is performed as a 128x128-bit multiplication by
* 2^M[extra_digits]/10^extra_digits, followed by a shift
- * M[extra_digits] is sufficiently large for required accuracy
+ * M[extra_digits] is sufficiently large for required accuracy
*
****************************************************************************/
@@ -166,7 +166,7 @@ bid64_mul (UINT64 x,
tempy.d = (double) coefficient_y;
bin_expon_cy = ((tempy.i & MASK_BINARY_EXPONENT) >> 52);
- // magnitude estimate for coefficient_x*coefficient_y is
+ // magnitude estimate for coefficient_x*coefficient_y is
// 2^(unbiased_bin_expon_cx + unbiased_bin_expon_cx)
bin_expon_product = bin_expon_cx + bin_expon_cy;
@@ -298,9 +298,9 @@ bid64_mul (UINT64 x,
if (rmode == 0) //ROUNDING_TO_NEAREST
#endif
if ((C64 & 1) && !round_up) {
- // check whether fractional part of initial_P/10^extra_digits
+ // check whether fractional part of initial_P/10^extra_digits
// is exactly .5
- // this is the same as fractional part of
+ // this is the same as fractional part of
// (initial_P + 0.5*10^extra_digits)/10^extra_digits is exactly zero
// get remainder
diff --git a/libgcc/config/libbid/bid64_next.c b/libgcc/config/libbid/bid64_next.c
index 73ffe00..b46a641 100644
--- a/libgcc/config/libbid/bid64_next.c
+++ b/libgcc/config/libbid/bid64_next.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -99,7 +99,7 @@ bid64_nextup (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
} else { // -MAXFP <= x <= -MINFP - 1 ulp OR MINFP <= x <= MAXFP - 1 ulp
// can add/subtract 1 ulp to the significand
- // Note: we could check here if x >= 10^16 to speed up the case q1 =16
+ // Note: we could check here if x >= 10^16 to speed up the case q1 =16
// q1 = nr. of decimal digits in x (1 <= q1 <= 54)
// determine first the nr. of bits in x
if (C1 >= MASK_BINARY_OR2) { // x >= 2^53
@@ -193,17 +193,17 @@ bid64_nextdown (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
UINT64 C1; // C1 represents x_signif (UINT64)
// check for NaNs and infinities
- if ((x & MASK_NAN) == MASK_NAN) { // check for NaN
+ if ((x & MASK_NAN) == MASK_NAN) { // check for NaN
if ((x & 0x0003ffffffffffffull) > 999999999999999ull)
- x = x & 0xfe00000000000000ull; // clear G6-G12 and the payload bits
+ x = x & 0xfe00000000000000ull; // clear G6-G12 and the payload bits
else
- x = x & 0xfe03ffffffffffffull; // clear G6-G12
- if ((x & MASK_SNAN) == MASK_SNAN) { // SNaN
+ x = x & 0xfe03ffffffffffffull; // clear G6-G12
+ if ((x & MASK_SNAN) == MASK_SNAN) { // SNaN
// set invalid flag
*pfpsf |= INVALID_EXCEPTION;
// return quiet (SNaN)
res = x & 0xfdffffffffffffffull;
- } else { // QNaN
+ } else { // QNaN
res = x;
}
BID_RETURN (res);
@@ -244,11 +244,11 @@ bid64_nextdown (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
} else { // -MAXFP + 1ulp <= x <= -MINFP OR MINFP + 1 ulp <= x <= MAXFP
// can add/subtract 1 ulp to the significand
- // Note: we could check here if x >= 10^16 to speed up the case q1 =16
+ // Note: we could check here if x >= 10^16 to speed up the case q1 =16
// q1 = nr. of decimal digits in x (1 <= q1 <= 16)
// determine first the nr. of bits in x
if (C1 >= 0x0020000000000000ull) { // x >= 2^53
- // split the 64-bit value in two 32-bit halves to avoid
+ // split the 64-bit value in two 32-bit halves to avoid
// rounding errors
if (C1 >= 0x0000000100000000ull) { // x >= 2^32
tmp1.d = (double) (C1 >> 32); // exact conversion
@@ -447,7 +447,7 @@ bid64_nextafter (UINT64 x,
*pfpsf |= OVERFLOW_EXCEPTION;
}
// if the result is in (-10^emin, 10^emin), and is different from the
- // operand x, signal underflow and inexact
+ // operand x, signal underflow and inexact
tmp1 = 0x00038d7ea4c68000ull; // +100...0[16] * 10^emin
tmp2 = res & 0x7fffffffffffffffull;
tmp_fpsf = *pfpsf; // save fpsf
diff --git a/libgcc/config/libbid/bid64_noncomp.c b/libgcc/config/libbid/bid64_noncomp.c
index ec63369..ad24c74 100644
--- a/libgcc/config/libbid/bid64_noncomp.c
+++ b/libgcc/config/libbid/bid64_noncomp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -335,7 +335,7 @@ bid64_abs (UINT64 x _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
BID_RETURN (res);
}
-// copies operand x to destination in the same format as x, but
+// copies operand x to destination in the same format as x, but
// with the sign of y
#if DECIMAL_CALL_BY_REFERENCE
void
@@ -425,7 +425,7 @@ bid64_class (UINT64 x _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
}
// true if the exponents of x and y are the same, false otherwise.
-// The special cases of sameQuantum (NaN, NaN) and sameQuantum (Inf, Inf) are
+// The special cases of sameQuantum (NaN, NaN) and sameQuantum (Inf, Inf) are
// true.
// If exactly one operand is infinite or exactly one operand is NaN, then false
#if DECIMAL_CALL_BY_REFERENCE
@@ -536,7 +536,7 @@ bid64_totalOrder (UINT64 x, UINT64 y _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
res = 0; // y is a number, return 1
BID_RETURN (res);
} else {
- // x and y are both +NaN;
+ // x and y are both +NaN;
// must investigate payload if both quiet or both signaling
// this xnor statement will be true if both x and y are +qNaN or +sNaN
if (!
@@ -547,7 +547,7 @@ bid64_totalOrder (UINT64 x, UINT64 y _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
// are bitwise identical)
pyld_y = y & 0x0003ffffffffffffull;
pyld_x = x & 0x0003ffffffffffffull;
- // if x is zero and y isn't, x has the smaller
+ // if x is zero and y isn't, x has the smaller
// payload definitely (since we know y isn't 0 at this point)
if (pyld_x > 999999999999999ull || pyld_x == 0) {
res = 1;
@@ -561,7 +561,7 @@ bid64_totalOrder (UINT64 x, UINT64 y _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
res = (pyld_x <= pyld_y);
BID_RETURN (res);
} else {
- // return true if y is +qNaN and x is +sNaN
+ // return true if y is +qNaN and x is +sNaN
// (we know they're different bc of xor if_stmt above)
res = ((x & MASK_SNAN) == MASK_SNAN);
BID_RETURN (res);
@@ -581,7 +581,7 @@ bid64_totalOrder (UINT64 x, UINT64 y _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
BID_RETURN (res);
}
// OPPOSITE SIGNS (CASE 3)
- // if signs are opposite, return 1 if x is negative
+ // if signs are opposite, return 1 if x is negative
// (if x<y, totalOrder is true)
if (((x & MASK_SIGN) == MASK_SIGN) ^ ((y & MASK_SIGN) == MASK_SIGN)) {
res = (x & MASK_SIGN) == MASK_SIGN;
@@ -594,7 +594,7 @@ bid64_totalOrder (UINT64 x, UINT64 y _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
res = 1;
BID_RETURN (res);
} else {
- // x is positive infinity, only return1 if y
+ // x is positive infinity, only return1 if y
// is positive infinity as well
// (we know y has same sign as x)
res = ((y & MASK_INF) == MASK_INF);
@@ -638,7 +638,7 @@ bid64_totalOrder (UINT64 x, UINT64 y _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
}
// ZERO (CASE 5)
- // if x and y represent the same entities, and
+ // if x and y represent the same entities, and
// both are negative , return true iff exp_x <= exp_y
if (x_is_zero && y_is_zero) {
if (!((x & MASK_SIGN) == MASK_SIGN) ^
@@ -671,7 +671,7 @@ bid64_totalOrder (UINT64 x, UINT64 y _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
BID_RETURN (res);
}
// REDUNDANT REPRESENTATIONS (CASE6)
- // if both components are either bigger or smaller,
+ // if both components are either bigger or smaller,
// it is clear what needs to be done
if (sig_x > sig_y && exp_x >= exp_y) {
res = ((x & MASK_SIGN) == MASK_SIGN);
@@ -681,29 +681,29 @@ bid64_totalOrder (UINT64 x, UINT64 y _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
res = ((x & MASK_SIGN) != MASK_SIGN);
BID_RETURN (res);
}
- // if exp_x is 15 greater than exp_y, it is
+ // if exp_x is 15 greater than exp_y, it is
// definitely larger, so no need for compensation
if (exp_x - exp_y > 15) {
// difference cannot be greater than 10^15
res = ((x & MASK_SIGN) == MASK_SIGN);
BID_RETURN (res);
}
- // if exp_x is 15 less than exp_y, it is
+ // if exp_x is 15 less than exp_y, it is
// definitely smaller, no need for compensation
if (exp_y - exp_x > 15) {
res = ((x & MASK_SIGN) != MASK_SIGN);
BID_RETURN (res);
}
- // if |exp_x - exp_y| < 15, it comes down
+ // if |exp_x - exp_y| < 15, it comes down
// to the compensated significand
if (exp_x > exp_y) {
// otherwise adjust the x significand upwards
__mul_64x64_to_128MACH (sig_n_prime, sig_x,
mult_factor[exp_x - exp_y]);
- // if x and y represent the same entities,
+ // if x and y represent the same entities,
// and both are negative, return true iff exp_x <= exp_y
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_y)) {
- // case cannot occure, because all bits must
+ // case cannot occure, because all bits must
// be the same - would have been caught if (x==y)
res = (exp_x <= exp_y) ^ ((x & MASK_SIGN) == MASK_SIGN);
BID_RETURN (res);
@@ -718,15 +718,15 @@ bid64_totalOrder (UINT64 x, UINT64 y _EXC_MASKS_PARAM _EXC_INFO_PARAM) {
__mul_64x64_to_128MACH (sig_n_prime, sig_y,
mult_factor[exp_y - exp_x]);
- // if x and y represent the same entities,
+ // if x and y represent the same entities,
// and both are negative, return true iff exp_x <= exp_y
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_x)) {
- // Cannot occur, because all bits must be the same.
+ // Cannot occur, because all bits must be the same.
// Case would have been caught if (x==y)
res = (exp_x <= exp_y) ^ ((x & MASK_SIGN) == MASK_SIGN);
BID_RETURN (res);
}
- // values are not equal, for positive numbers return 1
+ // values are not equal, for positive numbers return 1
// if x is less than y. 0 otherwise
res = ((sig_n_prime.w[1] > 0)
|| (sig_x < sig_n_prime.w[0])) ^ ((x & MASK_SIGN) ==
@@ -769,7 +769,7 @@ bid64_totalOrderMag (UINT64 x,
} else {
- // x and y are both +NaN;
+ // x and y are both +NaN;
// must investigate payload if both quiet or both signaling
// this xnor statement will be true if both x and y are +qNaN or +sNaN
if (!
@@ -780,7 +780,7 @@ bid64_totalOrderMag (UINT64 x,
// are bitwise identical)
pyld_y = y & 0x0003ffffffffffffull;
pyld_x = x & 0x0003ffffffffffffull;
- // if x is zero and y isn't, x has the smaller
+ // if x is zero and y isn't, x has the smaller
// payload definitely (since we know y isn't 0 at this point)
if (pyld_x > 999999999999999ull || pyld_x == 0) {
res = 1;
@@ -796,7 +796,7 @@ bid64_totalOrderMag (UINT64 x,
BID_RETURN (res);
} else {
- // return true if y is +qNaN and x is +sNaN
+ // return true if y is +qNaN and x is +sNaN
// (we know they're different bc of xor if_stmt above)
res = ((x & MASK_SNAN) == MASK_SNAN);
BID_RETURN (res);
@@ -810,7 +810,7 @@ bid64_totalOrderMag (UINT64 x,
BID_RETURN (res);
}
// SIMPLE (CASE2)
- // if all the bits (except sign bit) are the same,
+ // if all the bits (except sign bit) are the same,
// these numbers are equal.
if ((x & ~MASK_SIGN) == (y & ~MASK_SIGN)) {
res = 1;
@@ -818,7 +818,7 @@ bid64_totalOrderMag (UINT64 x,
}
// INFINITY (CASE3)
if ((x & MASK_INF) == MASK_INF) {
- // x is positive infinity, only return1
+ // x is positive infinity, only return1
// if y is positive infinity as well
res = ((y & MASK_INF) == MASK_INF);
BID_RETURN (res);
@@ -828,7 +828,7 @@ bid64_totalOrderMag (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if steering bits are 11 (condition will be 0),
+ // if steering bits are 11 (condition will be 0),
// then exponent is G[0:w+1] =>
if ((x & MASK_STEERING_BITS) == MASK_STEERING_BITS) {
exp_x = (x & MASK_BINARY_EXPONENT2) >> 51;
@@ -844,7 +844,7 @@ bid64_totalOrderMag (UINT64 x,
}
}
- // if steering bits are 11 (condition will be 0),
+ // if steering bits are 11 (condition will be 0),
// then exponent is G[0:w+1] =>
if ((y & MASK_STEERING_BITS) == MASK_STEERING_BITS) {
exp_y = (y & MASK_BINARY_EXPONENT2) >> 51;
@@ -861,7 +861,7 @@ bid64_totalOrderMag (UINT64 x,
}
// ZERO (CASE 5)
- // if x and y represent the same entities,
+ // if x and y represent the same entities,
// and both are negative , return true iff exp_x <= exp_y
if (x_is_zero && y_is_zero) {
// totalOrder(x,y) iff exp_x <= exp_y for positive numbers
@@ -888,19 +888,19 @@ bid64_totalOrderMag (UINT64 x,
res = 1;
BID_RETURN (res);
}
- // if exp_x is 15 greater than exp_y, it is definitely
+ // if exp_x is 15 greater than exp_y, it is definitely
// larger, so no need for compensation
if (exp_x - exp_y > 15) {
res = 0; // difference cannot be greater than 10^15
BID_RETURN (res);
}
- // if exp_x is 15 less than exp_y, it is definitely
+ // if exp_x is 15 less than exp_y, it is definitely
// smaller, no need for compensation
if (exp_y - exp_x > 15) {
res = 1;
BID_RETURN (res);
}
- // if |exp_x - exp_y| < 15, it comes down
+ // if |exp_x - exp_y| < 15, it comes down
// to the compensated significand
if (exp_x > exp_y) {
@@ -908,10 +908,10 @@ bid64_totalOrderMag (UINT64 x,
__mul_64x64_to_128MACH (sig_n_prime, sig_x,
mult_factor[exp_x - exp_y]);
- // if x and y represent the same entities,
+ // if x and y represent the same entities,
// and both are negative, return true iff exp_x <= exp_y
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_y)) {
- // case cannot occur, because all bits
+ // case cannot occur, because all bits
// must be the same - would have been caught if (x==y)
res = (exp_x <= exp_y);
BID_RETURN (res);
@@ -924,13 +924,13 @@ bid64_totalOrderMag (UINT64 x,
__mul_64x64_to_128MACH (sig_n_prime, sig_y,
mult_factor[exp_y - exp_x]);
- // if x and y represent the same entities,
+ // if x and y represent the same entities,
// and both are negative, return true iff exp_x <= exp_y
if (sig_n_prime.w[1] == 0 && (sig_n_prime.w[0] == sig_x)) {
res = (exp_x <= exp_y);
BID_RETURN (res);
}
- // values are not equal, for positive numbers
+ // values are not equal, for positive numbers
// return 1 if x is less than y. 0 otherwise
res = ((sig_n_prime.w[1] > 0) || (sig_x < sig_n_prime.w[0]));
BID_RETURN (res);
diff --git a/libgcc/config/libbid/bid64_quantize.c b/libgcc/config/libbid/bid64_quantize.c
index bc9a3df..49bccc6 100644
--- a/libgcc/config/libbid/bid64_quantize.c
+++ b/libgcc/config/libbid/bid64_quantize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -100,7 +100,7 @@ bid64_quantize (UINT64 x,
if ((x & 0x7800000000000000ull) == 0x7800000000000000ull) {
#ifdef SET_STATUS_FLAGS
if (((x & 0x7e00000000000000ull) == 0x7e00000000000000ull) // sNaN
- || ((x & 0x7c00000000000000ull) == 0x7800000000000000ull)) //Inf
+ || ((x & 0x7c00000000000000ull) == 0x7800000000000000ull)) //Inf
__set_status_flags (pfpsf, INVALID_EXCEPTION);
#endif
if ((x & NAN_MASK64) != NAN_MASK64)
@@ -156,9 +156,9 @@ bid64_quantize (UINT64 x,
if (rnd_mode == 0)
#endif
if (C64 & 1) {
- // check whether fractional part of initial_P/10^extra_digits
+ // check whether fractional part of initial_P/10^extra_digits
// is exactly .5
- // this is the same as fractional part of
+ // this is the same as fractional part of
// (initial_P + 0.5*10^extra_digits)/10^extra_digits is exactly zero
// get remainder
diff --git a/libgcc/config/libbid/bid64_rem.c b/libgcc/config/libbid/bid64_rem.c
index 7349d2f..67b04f6 100644
--- a/libgcc/config/libbid/bid64_rem.c
+++ b/libgcc/config/libbid/bid64_rem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -30,12 +30,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
* if(exponent_x < exponent_y)
* scale coefficient_y so exponents are aligned
* perform coefficient divide (64-bit integer divide), unless
- * coefficient_y is longer than 64 bits (clearly larger
- * than coefficient_x)
+ * coefficient_y is longer than 64 bits (clearly larger
+ * than coefficient_x)
* else // exponent_x > exponent_y
- * use a loop to scale coefficient_x to 18_digits, divide by
+ * use a loop to scale coefficient_x to 18_digits, divide by
* coefficient_y (64-bit integer divide), calculate remainder
- * as new_coefficient_x and repeat until final remainder is obtained
+ * as new_coefficient_x and repeat until final remainder is obtained
* (when new_exponent_x < exponent_y)
*
****************************************************************************/
diff --git a/libgcc/config/libbid/bid64_round_integral.c b/libgcc/config/libbid/bid64_round_integral.c
index 5a33c42..5030ef4 100644
--- a/libgcc/config/libbid/bid64_round_integral.c
+++ b/libgcc/config/libbid/bid64_round_integral.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -78,7 +78,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
}
// unpack x
if ((x & MASK_STEERING_BITS) == MASK_STEERING_BITS) {
- // if the steering bits are 11 (condition will be 0), then
+ // if the steering bits are 11 (condition will be 0), then
// the exponent is G[0:w+1]
exp = ((x & MASK_BINARY_EXPONENT2) >> 51) - 398;
C1 = (x & MASK_BINARY_SIG2) | MASK_BINARY_OR2;
@@ -90,7 +90,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
C1 = (x & MASK_BINARY_SIG1);
}
- // if x is 0 or non-canonical return 0 preserving the sign bit and
+ // if x is 0 or non-canonical return 0 preserving the sign bit and
// the preferred exponent of MAX(Q(x), 0)
if (C1 == 0) {
if (exp < 0)
@@ -135,7 +135,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
}
break;
case ROUNDING_TO_ZERO:
- // return 0 if (exp <= -p)
+ // return 0 if (exp <= -p)
if (exp <= -16) {
res = x_sign | 0x31c0000000000000ull;
*pfpsf |= INEXACT_EXCEPTION;
@@ -172,7 +172,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
if ((q + exp) >= 0) { // exp < 0 and 1 <= -exp <= q
// need to shift right -exp digits from the coefficient; exp will be 0
ind = -exp; // 1 <= ind <= 16; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 = C1 + 1/2 * 10^x where the result C1 fits in 64 bits
// FOR ROUND_TO_NEAREST, WE ADD 1/2 ULP(y) then truncate
C1 = C1 + midpoint64[ind - 1];
@@ -191,10 +191,10 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
// shift; C* has p decimal digits, correct by Prop. 1)
// else if floor(C*) is odd C* = floor(C*)-1 (logical right
// shift; C* has p decimal digits, correct by Pr. 1)
- // else
+ // else
// C* = floor(C*) (logical right shift; C has p decimal digits,
// correct by Property 1)
- // n = C* * 10^(e+x)
+ // n = C* * 10^(e+x)
if (ind - 1 <= 2) { // 0 <= ind - 1 <= 2 => shift = 0
res = P128.w[1];
@@ -258,7 +258,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
if ((q + exp) >= 0) { // exp < 0 and 1 <= -exp <= q
// need to shift right -exp digits from the coefficient; exp will be 0
ind = -exp; // 1 <= ind <= 16; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 = C1 + 1/2 * 10^x where the result C1 fits in 64 bits
// FOR ROUND_TO_NEAREST, WE ADD 1/2 ULP(y) then truncate
C1 = C1 + midpoint64[ind - 1];
@@ -273,7 +273,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
__mul_64x64_to_128 (P128, C1, ten2mk64[ind - 1]);
// if (0 < f* < 10^(-x)) then the result is a midpoint
- // C* = floor(C*) - logical right shift; C* has p decimal digits,
+ // C* = floor(C*) - logical right shift; C* has p decimal digits,
// correct by Prop. 1)
// else
// C* = floor(C*) (logical right shift; C has p decimal digits,
@@ -298,7 +298,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
// the result is inexact
if (ind - 1 <= 2) {
if (fstar.w[0] > 0x8000000000000000ull) {
- // f* > 1/2 and the result may be exact
+ // f* > 1/2 and the result may be exact
// fstar.w[0] - 0x8000000000000000ull is f* - 1/2
if ((fstar.w[0] - 0x8000000000000000ull) > ten2mk64[ind - 1]) {
// set the inexact flag
@@ -337,7 +337,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
if ((q + exp) > 0) { // exp < 0 and 1 <= -exp < q
// need to shift right -exp digits from the coefficient; exp will be 0
ind = -exp; // 1 <= ind <= 16; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 fits in 64 bits
// calculate C* and f*
// C* is actually floor(C*) in this case
@@ -352,7 +352,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
// C* = floor(C*) (logical right shift; C has p decimal digits,
// correct by Property 1)
// if (0 < f* < 10^(-x)) then the result is exact
- // n = C* * 10^(e+x)
+ // n = C* * 10^(e+x)
if (ind - 1 <= 2) { // 0 <= ind - 1 <= 2 => shift = 0
res = P128.w[1];
@@ -390,7 +390,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
if ((q + exp) > 0) { // exp < 0 and 1 <= -exp < q
// need to shift right -exp digits from the coefficient; exp will be 0
ind = -exp; // 1 <= ind <= 16; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 fits in 64 bits
// calculate C* and f*
// C* is actually floor(C*) in this case
@@ -405,7 +405,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
// C* = floor(C*) (logical right shift; C has p decimal digits,
// correct by Property 1)
// if (0 < f* < 10^(-x)) then the result is exact
- // n = C* * 10^(e+x)
+ // n = C* * 10^(e+x)
if (ind - 1 <= 2) { // 0 <= ind - 1 <= 2 => shift = 0
res = P128.w[1];
@@ -443,7 +443,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
if ((q + exp) >= 0) { // exp < 0 and 1 <= -exp <= q
// need to shift right -exp digits from the coefficient; exp will be 0
ind = -exp; // 1 <= ind <= 16; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 fits in 127 bits
// calculate C* and f*
// C* is actually floor(C*) in this case
@@ -458,7 +458,7 @@ bid64_round_integral_exact (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM
// C* = floor(C*) (logical right shift; C has p decimal digits,
// correct by Property 1)
// if (0 < f* < 10^(-x)) then the result is exact
- // n = C* * 10^(e+x)
+ // n = C* * 10^(e+x)
if (ind - 1 <= 2) { // 0 <= ind - 1 <= 2 => shift = 0
res = P128.w[1];
@@ -524,11 +524,11 @@ bid64_round_integral_nearest_even (UINT64 x _EXC_FLAGS_PARAM
if ((x & 0x0003ffffffffffffull) > 999999999999999ull)
x = x & 0xfe00000000000000ull; // clear G6-G12 and the payload bits
else
- x = x & 0xfe03ffffffffffffull; // clear G6-G12
- if ((x & MASK_SNAN) == MASK_SNAN) { // SNaN
- // set invalid flag
+ x = x & 0xfe03ffffffffffffull; // clear G6-G12
+ if ((x & MASK_SNAN) == MASK_SNAN) { // SNaN
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return quiet (SNaN)
+ // return quiet (SNaN)
res = x & 0xfdffffffffffffffull;
} else { // QNaN
res = x;
@@ -589,7 +589,7 @@ bid64_round_integral_nearest_even (UINT64 x _EXC_FLAGS_PARAM
} else if ((q + exp) >= 0) { // exp < 0 and 1 <= -exp <= q
// need to shift right -exp digits from the coefficient; the exp will be 0
ind = -exp; // 1 <= ind <= 16; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 = C1 + 1/2 * 10^x where the result C1 fits in 64 bits
// FOR ROUND_TO_NEAREST, WE ADD 1/2 ULP(y) then truncate
C1 = C1 + midpoint64[ind - 1];
@@ -608,10 +608,10 @@ bid64_round_integral_nearest_even (UINT64 x _EXC_FLAGS_PARAM
// shift; C* has p decimal digits, correct by Prop. 1)
// else if floor(C*) is odd C* = floor(C*)-1 (logical right
// shift; C* has p decimal digits, correct by Pr. 1)
- // else
+ // else
// C* = floor(C*) (logical right shift; C has p decimal digits,
// correct by Property 1)
- // n = C* * 10^(e+x)
+ // n = C* * 10^(e+x)
if (ind - 1 <= 2) { // 0 <= ind - 1 <= 2 => shift = 0
res = P128.w[1];
@@ -675,11 +675,11 @@ bid64_round_integral_negative (UINT64 x _EXC_FLAGS_PARAM
if ((x & 0x0003ffffffffffffull) > 999999999999999ull)
x = x & 0xfe00000000000000ull; // clear G6-G12 and the payload bits
else
- x = x & 0xfe03ffffffffffffull; // clear G6-G12
- if ((x & MASK_SNAN) == MASK_SNAN) { // SNaN
- // set invalid flag
+ x = x & 0xfe03ffffffffffffull; // clear G6-G12
+ if ((x & MASK_SNAN) == MASK_SNAN) { // SNaN
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return quiet (SNaN)
+ // return quiet (SNaN)
res = x & 0xfdffffffffffffffull;
} else { // QNaN
res = x;
@@ -744,7 +744,7 @@ bid64_round_integral_negative (UINT64 x _EXC_FLAGS_PARAM
} else if ((q + exp) > 0) { // exp < 0 and 1 <= -exp < q
// need to shift right -exp digits from the coefficient; the exp will be 0
ind = -exp; // 1 <= ind <= 16; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 fits in 64 bits
// calculate C* and f*
// C* is actually floor(C*) in this case
@@ -759,7 +759,7 @@ bid64_round_integral_negative (UINT64 x _EXC_FLAGS_PARAM
// C* = floor(C*) (logical right shift; C has p decimal digits,
// correct by Property 1)
// if (0 < f* < 10^(-x)) then the result is exact
- // n = C* * 10^(e+x)
+ // n = C* * 10^(e+x)
if (ind - 1 <= 2) { // 0 <= ind - 1 <= 2 => shift = 0
res = P128.w[1];
@@ -827,11 +827,11 @@ bid64_round_integral_positive (UINT64 x _EXC_FLAGS_PARAM
if ((x & 0x0003ffffffffffffull) > 999999999999999ull)
x = x & 0xfe00000000000000ull; // clear G6-G12 and the payload bits
else
- x = x & 0xfe03ffffffffffffull; // clear G6-G12
- if ((x & MASK_SNAN) == MASK_SNAN) { // SNaN
- // set invalid flag
+ x = x & 0xfe03ffffffffffffull; // clear G6-G12
+ if ((x & MASK_SNAN) == MASK_SNAN) { // SNaN
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return quiet (SNaN)
+ // return quiet (SNaN)
res = x & 0xfdffffffffffffffull;
} else { // QNaN
res = x;
@@ -896,7 +896,7 @@ bid64_round_integral_positive (UINT64 x _EXC_FLAGS_PARAM
} else if ((q + exp) > 0) { // exp < 0 and 1 <= -exp < q
// need to shift right -exp digits from the coefficient; the exp will be 0
ind = -exp; // 1 <= ind <= 16; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 fits in 64 bits
// calculate C* and f*
// C* is actually floor(C*) in this case
@@ -911,7 +911,7 @@ bid64_round_integral_positive (UINT64 x _EXC_FLAGS_PARAM
// C* = floor(C*) (logical right shift; C has p decimal digits,
// correct by Property 1)
// if (0 < f* < 10^(-x)) then the result is exact
- // n = C* * 10^(e+x)
+ // n = C* * 10^(e+x)
if (ind - 1 <= 2) { // 0 <= ind - 1 <= 2 => shift = 0
res = P128.w[1];
@@ -978,11 +978,11 @@ bid64_round_integral_zero (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
if ((x & 0x0003ffffffffffffull) > 999999999999999ull)
x = x & 0xfe00000000000000ull; // clear G6-G12 and the payload bits
else
- x = x & 0xfe03ffffffffffffull; // clear G6-G12
- if ((x & MASK_SNAN) == MASK_SNAN) { // SNaN
- // set invalid flag
+ x = x & 0xfe03ffffffffffffull; // clear G6-G12
+ if ((x & MASK_SNAN) == MASK_SNAN) { // SNaN
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return quiet (SNaN)
+ // return quiet (SNaN)
res = x & 0xfdffffffffffffffull;
} else { // QNaN
res = x;
@@ -1043,7 +1043,7 @@ bid64_round_integral_zero (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
} else if ((q + exp) >= 0) { // exp < 0 and 1 <= -exp <= q
// need to shift right -exp digits from the coefficient; the exp will be 0
ind = -exp; // 1 <= ind <= 16; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 fits in 127 bits
// calculate C* and f*
// C* is actually floor(C*) in this case
@@ -1058,7 +1058,7 @@ bid64_round_integral_zero (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// C* = floor(C*) (logical right shift; C has p decimal digits,
// correct by Property 1)
// if (0 < f* < 10^(-x)) then the result is exact
- // n = C* * 10^(e+x)
+ // n = C* * 10^(e+x)
if (ind - 1 <= 2) { // 0 <= ind - 1 <= 2 => shift = 0
res = P128.w[1];
@@ -1118,11 +1118,11 @@ bid64_round_integral_nearest_away (UINT64 x _EXC_FLAGS_PARAM
if ((x & 0x0003ffffffffffffull) > 999999999999999ull)
x = x & 0xfe00000000000000ull; // clear G6-G12 and the payload bits
else
- x = x & 0xfe03ffffffffffffull; // clear G6-G12
- if ((x & MASK_SNAN) == MASK_SNAN) { // SNaN
- // set invalid flag
+ x = x & 0xfe03ffffffffffffull; // clear G6-G12
+ if ((x & MASK_SNAN) == MASK_SNAN) { // SNaN
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return quiet (SNaN)
+ // return quiet (SNaN)
res = x & 0xfdffffffffffffffull;
} else { // QNaN
res = x;
@@ -1183,7 +1183,7 @@ bid64_round_integral_nearest_away (UINT64 x _EXC_FLAGS_PARAM
} else if ((q + exp) >= 0) { // exp < 0 and 1 <= -exp <= q
// need to shift right -exp digits from the coefficient; the exp will be 0
ind = -exp; // 1 <= ind <= 16; ind is a synonym for 'x'
- // chop off ind digits from the lower part of C1
+ // chop off ind digits from the lower part of C1
// C1 = C1 + 1/2 * 10^x where the result C1 fits in 64 bits
// FOR ROUND_TO_NEAREST, WE ADD 1/2 ULP(y) then truncate
C1 = C1 + midpoint64[ind - 1];
@@ -1198,7 +1198,7 @@ bid64_round_integral_nearest_away (UINT64 x _EXC_FLAGS_PARAM
__mul_64x64_to_128 (P128, C1, ten2mk64[ind - 1]);
// if (0 < f* < 10^(-x)) then the result is a midpoint
- // C* = floor(C*) - logical right shift; C* has p decimal digits,
+ // C* = floor(C*) - logical right shift; C* has p decimal digits,
// correct by Prop. 1)
// else
// C* = floor(C*) (logical right shift; C has p decimal digits,
diff --git a/libgcc/config/libbid/bid64_scalb.c b/libgcc/config/libbid/bid64_scalb.c
index 0010518..cc52a46 100644
--- a/libgcc/config/libbid/bid64_scalb.c
+++ b/libgcc/config/libbid/bid64_scalb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 b9d1f8e..29f4cf1 100644
--- a/libgcc/config/libbid/bid64_sqrt.c
+++ b/libgcc/config/libbid/bid64_sqrt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -33,9 +33,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
* - scale coefficient x to between 31 and 33 decimal digits
* - in parallel, check for exact case and return if true
* - get high part of result coefficient using double precision sqrt
- * - compute remainder and refine coefficient in one iteration (which
+ * - compute remainder and refine coefficient in one iteration (which
* modifies it by at most 1)
- * - result exponent is easy to compute from the adjusted arg. exponent
+ * - result exponent is easy to compute from the adjusted arg. exponent
*
****************************************************************************/
@@ -299,7 +299,7 @@ C256.w[0] = A10.w[0];
CS.w[0] = short_sqrt128 (A10);
CS.w[1] = 0;
mul_factor = 0;
- // check for exact result
+ // check for exact result
if (CS.w[0] < 10000000000000000ull) {
if (CS.w[0] * CS.w[0] == A10.w[0]) {
__sqr64_fast (S2, CS.w[0]);
@@ -518,7 +518,7 @@ if (!((rnd_mode) & 3)) {
/*__add_carry_out(M256.w[0], Carry, M256.w[0], C8.w[0]);
M256.w[1] = M256.w[1] + Carry + C8.w[1];
M256.w[0]++;
- if(!M256.w[0])
+ if(!M256.w[0])
{
M256.w[1]++;
}
diff --git a/libgcc/config/libbid/bid64_string.c b/libgcc/config/libbid/bid64_string.c
index 81ac5e2..1e8ab3e 100644
--- a/libgcc/config/libbid/bid64_string.c
+++ b/libgcc/config/libbid/bid64_string.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -144,10 +144,10 @@ bid64_to_string (char *ps, UINT64 x
ps[istart++] = '0';
} else {
/* ****************************************************
- This takes a bid coefficient in C1.w[1],C1.w[0]
- and put the converted character sequence at location
+ This takes a bid coefficient in C1.w[1],C1.w[0]
+ and put the converted character sequence at location
starting at &(str[k]). The function returns the number
- of MiDi returned. Note that the character sequence
+ of MiDi returned. Note that the character sequence
does not have leading zeros EXCEPT when the input is of
zero value. It will then output 1 character '0'
The algorithm essentailly tries first to get a sequence of
@@ -165,7 +165,7 @@ bid64_to_string (char *ps, UINT64 x
18 digits, we set hi = 0, and lo = d to begin with.
We then retrieve from a table, for j = 0, 1, ..., 8
that gives us A and B where c_j 2^(59+6j) = A * 10^18 + B.
- hi += A ; lo += B; After each accumulation into lo, we normalize
+ hi += A ; lo += B; After each accumulation into lo, we normalize
immediately. So at the end, we have the decomposition as we need. */
Tmp = coefficient_x >> 59;
@@ -241,12 +241,12 @@ bid64_to_string (char *ps, UINT64 x
#if DECIMAL_CALL_BY_REFERENCE
void
bid64_from_string (UINT64 * pres, char *ps
- _RND_MODE_PARAM _EXC_FLAGS_PARAM
+ _RND_MODE_PARAM _EXC_FLAGS_PARAM
_EXC_MASKS_PARAM _EXC_INFO_PARAM) {
#else
UINT64
bid64_from_string (char *ps
- _RND_MODE_PARAM _EXC_FLAGS_PARAM
+ _RND_MODE_PARAM _EXC_FLAGS_PARAM
_EXC_MASKS_PARAM _EXC_INFO_PARAM) {
#endif
UINT64 sign_x, coefficient_x = 0, rounded = 0, res;
@@ -275,18 +275,18 @@ bid64_from_string (char *ps
// detect special cases (INF or NaN)
if (!c || (c != '.' && c != '-' && c != '+' && (c < '0' || c > '9'))) {
// Infinity?
- if ((tolower_macro (ps[0]) == 'i' && tolower_macro (ps[1]) == 'n' &&
- tolower_macro (ps[2]) == 'f') && (!ps[3] ||
- (tolower_macro (ps[3]) == 'i' &&
- tolower_macro (ps[4]) == 'n' && tolower_macro (ps[5]) == 'i' &&
- tolower_macro (ps[6]) == 't' && tolower_macro (ps[7]) == 'y' &&
+ if ((tolower_macro (ps[0]) == 'i' && tolower_macro (ps[1]) == 'n' &&
+ tolower_macro (ps[2]) == 'f') && (!ps[3] ||
+ (tolower_macro (ps[3]) == 'i' &&
+ tolower_macro (ps[4]) == 'n' && tolower_macro (ps[5]) == 'i' &&
+ tolower_macro (ps[6]) == 't' && tolower_macro (ps[7]) == 'y' &&
!ps[8]))) {
res = 0x7800000000000000ull;
BID_RETURN (res);
}
// return sNaN
- if (tolower_macro (ps[0]) == 's' && tolower_macro (ps[1]) == 'n' &&
- tolower_macro (ps[2]) == 'a' && tolower_macro (ps[3]) == 'n') {
+ if (tolower_macro (ps[0]) == 's' && tolower_macro (ps[1]) == 'n' &&
+ tolower_macro (ps[2]) == 'a' && tolower_macro (ps[3]) == 'n') {
// case insensitive check for snan
res = 0x7e00000000000000ull;
BID_RETURN (res);
@@ -297,10 +297,10 @@ bid64_from_string (char *ps
}
}
// detect +INF or -INF
- if ((tolower_macro (ps[1]) == 'i' && tolower_macro (ps[2]) == 'n' &&
- tolower_macro (ps[3]) == 'f') && (!ps[4] ||
- (tolower_macro (ps[4]) == 'i' && tolower_macro (ps[5]) == 'n' &&
- tolower_macro (ps[6]) == 'i' && tolower_macro (ps[7]) == 't' &&
+ if ((tolower_macro (ps[1]) == 'i' && tolower_macro (ps[2]) == 'n' &&
+ tolower_macro (ps[3]) == 'f') && (!ps[4] ||
+ (tolower_macro (ps[4]) == 'i' && tolower_macro (ps[5]) == 'n' &&
+ tolower_macro (ps[6]) == 'i' && tolower_macro (ps[7]) == 't' &&
tolower_macro (ps[8]) == 'y' && !ps[9]))) {
if (c == '+')
res = 0x7800000000000000ull;
@@ -350,17 +350,17 @@ bid64_from_string (char *ps
// should catch cases such as: 000.0
while (*ps == '0') {
ps++;
- // for numbers such as 0.0000000000000000000000000000000000001001,
+ // for numbers such as 0.0000000000000000000000000000000000001001,
// we want to count the leading zeros
if (rdx_pt_enc) {
right_radix_leading_zeros++;
}
- // if this character is a radix point, make sure we haven't already
+ // if this character is a radix point, make sure we haven't already
// encountered one
if (*(ps) == '.') {
if (rdx_pt_enc == 0) {
rdx_pt_enc = 1;
- // if this is the first radix point, and the next character is NULL,
+ // if this is the first radix point, and the next character is NULL,
// we have a zero
if (!*(ps + 1)) {
res =
@@ -408,8 +408,8 @@ bid64_from_string (char *ps
// coefficient rounding
switch(rnd_mode){
case ROUNDING_TO_NEAREST:
- midpoint = (c == '5' && !(coefficient_x & 1)) ? 1 : 0;
- // if coefficient is even and c is 5, prepare to round up if
+ midpoint = (c == '5' && !(coefficient_x & 1)) ? 1 : 0;
+ // if coefficient is even and c is 5, prepare to round up if
// subsequent digit is nonzero
// if str[MAXDIG+1] > 5, we MUST round up
// if str[MAXDIG+1] == 5 and coefficient is ODD, ROUND UP!
diff --git a/libgcc/config/libbid/bid64_to_bid128.c b/libgcc/config/libbid/bid64_to_bid128.c
index a8daddc..3611d59 100644
--- a/libgcc/config/libbid/bid64_to_bid128.c
+++ b/libgcc/config/libbid/bid64_to_bid128.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -25,7 +25,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_internal.h"
/*
- * Takes a BID64 as input and converts it to a BID128 and returns it.
+ * Takes a BID64 as input and converts it to a BID128 and returns it.
*/
TYPE0_FUNCTION_ARGTYPE1_NORND (UINT128, bid64_to_bid128, UINT64, x)
diff --git a/libgcc/config/libbid/bid64_to_int16.c b/libgcc/config/libbid/bid64_to_int16.c
index ad165e1..739fc30 100644
--- a/libgcc/config/libbid/bid64_to_int16.c
+++ b/libgcc/config/libbid/bid64_to_int16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 9c33eff..804f1de 100644
--- a/libgcc/config/libbid/bid64_to_int32.c
+++ b/libgcc/config/libbid/bid64_to_int32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -181,9 +181,9 @@ bid64_to_int32_rnint (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// Note: 0x4fffffffb*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x4fffffffbull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -223,7 +223,7 @@ bid64_to_int32_rnint (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -252,7 +252,7 @@ bid64_to_int32_rnint (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// check for midpoints
if ((fstar.w[1] == 0) && fstar.w[0]
&& (fstar.w[0] <= ten2mk128trunc[ind - 1].w[1])) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// the result is a midpoint; round to nearest
if (Cstar & 0x01) { // Cstar is odd; MP in [EVEN, ODD]
@@ -440,9 +440,9 @@ bid64_to_int32_xrnint (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// Note: 0x4fffffffb*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x4fffffffbull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -486,7 +486,7 @@ bid64_to_int32_xrnint (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -519,7 +519,7 @@ bid64_to_int32_xrnint (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// f* > 1/2 and the result may be exact
tmp64 = fstar.w[0] - 0x8000000000000000ull; // f* - 1/2
if ((tmp64 > ten2mk128trunc[ind - 1].w[1])) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
@@ -535,7 +535,7 @@ bid64_to_int32_xrnint (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// Calculate f2* - 1/2
tmp64 = fstar.w[1] - onehalf128[ind - 1];
if (tmp64 || fstar.w[0] > ten2mk128trunc[ind - 1].w[1]) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
@@ -551,7 +551,7 @@ bid64_to_int32_xrnint (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// check for midpoints
if ((fstar.w[1] == 0) && fstar.w[0]
&& (fstar.w[0] <= ten2mk128trunc[ind - 1].w[1])) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// the result is a midpoint; round to nearest
if (Cstar & 0x01) { // Cstar is odd; MP in [EVEN, ODD]
@@ -739,9 +739,9 @@ bid64_to_int32_floor (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// Note: 0x500000000*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x500000000ull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -770,7 +770,7 @@ bid64_to_int32_floor (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -990,9 +990,9 @@ bid64_to_int32_xfloor (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// Note: 0x500000000*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x500000000ull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -1023,7 +1023,7 @@ bid64_to_int32_xfloor (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1247,9 +1247,9 @@ bid64_to_int32_ceil (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// Note: 0x4fffffff6*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x4fffffff6ull * ten2k64[q - 11];
if (C1 > tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -1278,7 +1278,7 @@ bid64_to_int32_ceil (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1312,7 +1312,7 @@ bid64_to_int32_ceil (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
if (fstar.w[1] || fstar.w[0] > ten2mk128trunc[ind - 1].w[1]) {
// ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
- if (!x_sign) { // positive and inexact
+ if (!x_sign) { // positive and inexact
Cstar++;
}
} // else the result is exact
@@ -1498,9 +1498,9 @@ bid64_to_int32_xceil (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// Note: 0x4fffffff6*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x4fffffff6ull * ten2k64[q - 11];
if (C1 > tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -1531,7 +1531,7 @@ bid64_to_int32_xceil (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1567,7 +1567,7 @@ bid64_to_int32_xceil (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
if (fstar.w[1] || fstar.w[0] > ten2mk128trunc[ind - 1].w[1]) {
// ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
- if (!x_sign) { // positive and inexact
+ if (!x_sign) { // positive and inexact
Cstar++;
}
// set the inexact flag
@@ -1754,9 +1754,9 @@ bid64_to_int32_int (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// Note: 0x500000000*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x500000000ull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -1782,7 +1782,7 @@ bid64_to_int32_int (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1977,9 +1977,9 @@ bid64_to_int32_xint (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// Note: 0x500000000*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x500000000ull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -2007,7 +2007,7 @@ bid64_to_int32_xint (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -2224,9 +2224,9 @@ bid64_to_int32_rninta (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// Note: 0x4fffffffb*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x4fffffffbull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -2266,7 +2266,7 @@ bid64_to_int32_rninta (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -2274,7 +2274,7 @@ bid64_to_int32_rninta (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
Cstar = P128.w[1];
// the top Ex bits of 10^(-x) are T* = ten2mk128trunc[ind].w[0], e.g.
// if x=1, T*=ten2mk128trunc[0].w[0]=0x1999999999999999
- // C* = floor(C*)-1 (logical right shift; C* has p decimal digits,
+ // C* = floor(C*)-1 (logical right shift; C* has p decimal digits,
// correct by Pr. 1)
// n = C* * 10^(e+x)
@@ -2463,9 +2463,9 @@ bid64_to_int32_xrninta (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// Note: 0x4fffffffb*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x4fffffffbull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -2509,7 +2509,7 @@ bid64_to_int32_xrninta (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -2519,7 +2519,7 @@ bid64_to_int32_xrninta (UINT64 x _EXC_FLAGS_PARAM _EXC_MASKS_PARAM
fstar.w[0] = P128.w[0];
// the top Ex bits of 10^(-x) are T* = ten2mk128trunc[ind].w[0], e.g.
// if x=1, T*=ten2mk128trunc[0].w[0]=0x1999999999999999
- // C* = floor(C*)-1 (logical right shift; C* has p decimal digits,
+ // C* = floor(C*)-1 (logical right shift; C* has p decimal digits,
// correct by Pr. 1)
// n = C* * 10^(e+x)
diff --git a/libgcc/config/libbid/bid64_to_int64.c b/libgcc/config/libbid/bid64_to_int64.c
index b8c3dca..6abab3a 100644
--- a/libgcc/config/libbid/bid64_to_int64.c
+++ b/libgcc/config/libbid/bid64_to_int64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -194,7 +194,7 @@ bid64_to_int64_rnint (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -223,7 +223,7 @@ bid64_to_int64_rnint (UINT64 x
// check for midpoints
if ((fstar.w[1] == 0) && fstar.w[0] &&
(fstar.w[0] <= ten2mk128trunc[ind - 1].w[1])) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// the result is a midpoint; round to nearest
if (Cstar & 0x01) { // Cstar is odd; MP in [EVEN, ODD]
@@ -243,8 +243,8 @@ bid64_to_int64_rnint (UINT64 x
else
res = C1;
} else { // if (exp > 0) => 1 <= exp <= 18, 1 <= q <= 16, 2 <= q + exp <= 20
- // (the upper limit of 20 on q + exp is due to the fact that
- // +/-C * 10^exp is guaranteed to fit in 64 bits)
+ // (the upper limit of 20 on q + exp is due to the fact that
+ // +/-C * 10^exp is guaranteed to fit in 64 bits)
// res = +/-C * 10^exp (exact)
if (x_sign)
res = -C1 * ten2k64[exp];
@@ -431,7 +431,7 @@ bid64_to_int64_xrnint (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -464,7 +464,7 @@ bid64_to_int64_xrnint (UINT64 x
// f* > 1/2 and the result may be exact
tmp64 = fstar.w[0] - 0x8000000000000000ull; // f* - 1/2
if ((tmp64 > ten2mk128trunc[ind - 1].w[1])) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
@@ -480,7 +480,7 @@ bid64_to_int64_xrnint (UINT64 x
// Calculate f2* - 1/2
tmp64 = fstar.w[1] - onehalf128[ind - 1];
if (tmp64 || fstar.w[0] > ten2mk128trunc[ind - 1].w[1]) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
@@ -496,7 +496,7 @@ bid64_to_int64_xrnint (UINT64 x
// check for midpoints
if ((fstar.w[1] == 0) && fstar.w[0] &&
(fstar.w[0] <= ten2mk128trunc[ind - 1].w[1])) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// the result is a midpoint; round to nearest
if (Cstar & 0x01) { // Cstar is odd; MP in [EVEN, ODD]
@@ -516,8 +516,8 @@ bid64_to_int64_xrnint (UINT64 x
else
res = C1;
} else { // if (exp > 0) => 1 <= exp <= 18, 1 <= q <= 16, 2 <= q + exp <= 20
- // (the upper limit of 20 on q + exp is due to the fact that
- // +/-C * 10^exp is guaranteed to fit in 64 bits)
+ // (the upper limit of 20 on q + exp is due to the fact that
+ // +/-C * 10^exp is guaranteed to fit in 64 bits)
// res = +/-C * 10^exp (exact)
if (x_sign)
res = -C1 * ten2k64[exp];
@@ -688,7 +688,7 @@ bid64_to_int64_floor (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -740,8 +740,8 @@ bid64_to_int64_floor (UINT64 x
else
res = C1;
} else { // if (exp > 0) => 1 <= exp <= 18, 1 <= q <= 16, 2 <= q + exp <= 20
- // (the upper limit of 20 on q + exp is due to the fact that
- // +/-C * 10^exp is guaranteed to fit in 64 bits)
+ // (the upper limit of 20 on q + exp is due to the fact that
+ // +/-C * 10^exp is guaranteed to fit in 64 bits)
// res = +/-C * 10^exp (exact)
if (x_sign)
res = -C1 * ten2k64[exp];
@@ -914,7 +914,7 @@ bid64_to_int64_xfloor (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -970,8 +970,8 @@ bid64_to_int64_xfloor (UINT64 x
else
res = C1;
} else { // if (exp > 0) => 1 <= exp <= 18, 1 <= q <= 16, 2 <= q + exp <= 20
- // (the upper limit of 20 on q + exp is due to the fact that
- // +/-C * 10^exp is guaranteed to fit in 64 bits)
+ // (the upper limit of 20 on q + exp is due to the fact that
+ // +/-C * 10^exp is guaranteed to fit in 64 bits)
// res = +/-C * 10^exp (exact)
if (x_sign)
res = -C1 * ten2k64[exp];
@@ -989,13 +989,13 @@ bid64_to_int64_xfloor (UINT64 x
#if DECIMAL_CALL_BY_REFERENCE
void
bid64_to_int64_ceil (SINT64 * pres, UINT64 * px
- _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
+ _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
{
UINT64 x = *px;
#else
SINT64
bid64_to_int64_ceil (UINT64 x
- _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
+ _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
{
#endif
SINT64 res;
@@ -1142,7 +1142,7 @@ bid64_to_int64_ceil (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1194,8 +1194,8 @@ bid64_to_int64_ceil (UINT64 x
else
res = C1;
} else { // if (exp > 0) => 1 <= exp <= 18, 1 <= q <= 16, 2 <= q + exp <= 20
- // (the upper limit of 20 on q + exp is due to the fact that
- // +/-C * 10^exp is guaranteed to fit in 64 bits)
+ // (the upper limit of 20 on q + exp is due to the fact that
+ // +/-C * 10^exp is guaranteed to fit in 64 bits)
// res = +/-C * 10^exp (exact)
if (x_sign)
res = -C1 * ten2k64[exp];
@@ -1368,7 +1368,7 @@ bid64_to_int64_xceil (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1424,8 +1424,8 @@ bid64_to_int64_xceil (UINT64 x
else
res = C1;
} else { // if (exp > 0) => 1 <= exp <= 18, 1 <= q <= 16, 2 <= q + exp <= 20
- // (the upper limit of 20 on q + exp is due to the fact that
- // +/-C * 10^exp is guaranteed to fit in 64 bits)
+ // (the upper limit of 20 on q + exp is due to the fact that
+ // +/-C * 10^exp is guaranteed to fit in 64 bits)
// res = +/-C * 10^exp (exact)
if (x_sign)
res = -C1 * ten2k64[exp];
@@ -1590,7 +1590,7 @@ bid64_to_int64_int (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1618,8 +1618,8 @@ bid64_to_int64_int (UINT64 x
else
res = C1;
} else { // if (exp > 0) => 1 <= exp <= 18, 1 <= q <= 16, 2 <= q + exp <= 20
- // (the upper limit of 20 on q + exp is due to the fact that
- // +/-C * 10^exp is guaranteed to fit in 64 bits)
+ // (the upper limit of 20 on q + exp is due to the fact that
+ // +/-C * 10^exp is guaranteed to fit in 64 bits)
// res = +/-C * 10^exp (exact)
if (x_sign)
res = -C1 * ten2k64[exp];
@@ -1637,13 +1637,13 @@ bid64_to_int64_int (UINT64 x
#if DECIMAL_CALL_BY_REFERENCE
void
bid64_to_int64_xint (SINT64 * pres, UINT64 * px
- _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
+ _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
{
UINT64 x = *px;
#else
SINT64
bid64_to_int64_xint (UINT64 x
- _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
+ _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
{
#endif
SINT64 res;
@@ -1789,7 +1789,7 @@ bid64_to_int64_xint (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1838,8 +1838,8 @@ bid64_to_int64_xint (UINT64 x
else
res = C1;
} else { // if (exp > 0) => 1 <= exp <= 18, 1 <= q <= 16, 2 <= q + exp <= 20
- // (the upper limit of 20 on q + exp is due to the fact that
- // +/-C * 10^exp is guaranteed to fit in 64 bits)
+ // (the upper limit of 20 on q + exp is due to the fact that
+ // +/-C * 10^exp is guaranteed to fit in 64 bits)
// res = +/-C * 10^exp (exact)
if (x_sign)
res = -C1 * ten2k64[exp];
@@ -2020,7 +2020,7 @@ bid64_to_int64_rninta (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -2055,8 +2055,8 @@ bid64_to_int64_rninta (UINT64 x
else
res = C1;
} else { // if (exp > 0) => 1 <= exp <= 18, 1 <= q <= 16, 2 <= q + exp <= 20
- // (the upper limit of 20 on q + exp is due to the fact that
- // +/-C * 10^exp is guaranteed to fit in 64 bits)
+ // (the upper limit of 20 on q + exp is due to the fact that
+ // +/-C * 10^exp is guaranteed to fit in 64 bits)
// res = +/-C * 10^exp (exact)
if (x_sign)
res = -C1 * ten2k64[exp];
@@ -2243,7 +2243,7 @@ bid64_to_int64_xrninta (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -2276,7 +2276,7 @@ bid64_to_int64_xrninta (UINT64 x
// f* > 1/2 and the result may be exact
tmp64 = fstar.w[0] - 0x8000000000000000ull; // f* - 1/2
if ((tmp64 > ten2mk128trunc[ind - 1].w[1])) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
@@ -2292,7 +2292,7 @@ bid64_to_int64_xrninta (UINT64 x
// Calculate f2* - 1/2
tmp64 = fstar.w[1] - onehalf128[ind - 1];
if (tmp64 || fstar.w[0] > ten2mk128trunc[ind - 1].w[1]) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
@@ -2316,8 +2316,8 @@ bid64_to_int64_xrninta (UINT64 x
else
res = C1;
} else { // if (exp > 0) => 1 <= exp <= 18, 1 <= q <= 16, 2 <= q + exp <= 20
- // (the upper limit of 20 on q + exp is due to the fact that
- // +/-C * 10^exp is guaranteed to fit in 64 bits)
+ // (the upper limit of 20 on q + exp is due to the fact that
+ // +/-C * 10^exp is guaranteed to fit in 64 bits)
// res = +/-C * 10^exp (exact)
if (x_sign)
res = -C1 * ten2k64[exp];
diff --git a/libgcc/config/libbid/bid64_to_int8.c b/libgcc/config/libbid/bid64_to_int8.c
index 44bc04a..0dba5cb 100644
--- a/libgcc/config/libbid/bid64_to_int8.c
+++ b/libgcc/config/libbid/bid64_to_int8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 8189975..7e1e701 100644
--- a/libgcc/config/libbid/bid64_to_uint16.c
+++ b/libgcc/config/libbid/bid64_to_uint16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 22e6bc7..b0fa2ee 100644
--- a/libgcc/config/libbid/bid64_to_uint32.c
+++ b/libgcc/config/libbid/bid64_to_uint32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -153,9 +153,9 @@ bid64_to_uint32_rnint (UINT64 x
// Note: 0x9fffffffb*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x9fffffffbull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -190,7 +190,7 @@ bid64_to_uint32_rnint (UINT64 x
res = 0x00000001; // return +1
}
} else { // if (1 <= q + exp <= 10, 1 <= q <= 16, -15 <= exp <= 9)
- // -2^32-1/2 <= x <= -1 or 1 <= x < 2^32-1/2 so if positive, x can be
+ // -2^32-1/2 <= x <= -1 or 1 <= x < 2^32-1/2 so if positive, x can be
// rounded to nearest to a 32-bit unsigned integer
if (x_sign) { // x <= -1
// set invalid flag
@@ -210,7 +210,7 @@ bid64_to_uint32_rnint (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -239,7 +239,7 @@ bid64_to_uint32_rnint (UINT64 x
// check for midpoints
if ((fstar.w[1] == 0) && fstar.w[0] &&
(fstar.w[0] <= ten2mk128trunc[ind - 1].w[1])) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// the result is a midpoint; round to nearest
if (Cstar & 0x01) { // Cstar is odd; MP in [EVEN, ODD]
@@ -390,9 +390,9 @@ bid64_to_uint32_xrnint (UINT64 x
// Note: 0x9fffffffb*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x9fffffffbull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -431,7 +431,7 @@ bid64_to_uint32_xrnint (UINT64 x
// set inexact flag
*pfpsf |= INEXACT_EXCEPTION;
} else { // if (1 <= q + exp <= 10, 1 <= q <= 16, -15 <= exp <= 9)
- // -2^32-1/2 <= x <= -1 or 1 <= x < 2^32-1/2 so if positive, x can be
+ // -2^32-1/2 <= x <= -1 or 1 <= x < 2^32-1/2 so if positive, x can be
// rounded to nearest to a 32-bit unsigned integer
if (x_sign) { // x <= -1
// set invalid flag
@@ -451,7 +451,7 @@ bid64_to_uint32_xrnint (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -484,7 +484,7 @@ bid64_to_uint32_xrnint (UINT64 x
// f* > 1/2 and the result may be exact
tmp64 = fstar.w[0] - 0x8000000000000000ull; // f* - 1/2
if ((tmp64 > ten2mk128trunc[ind - 1].w[1])) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
@@ -500,7 +500,7 @@ bid64_to_uint32_xrnint (UINT64 x
// Calculate f2* - 1/2
tmp64 = fstar.w[1] - onehalf128[ind - 1];
if (tmp64 || fstar.w[0] > ten2mk128trunc[ind - 1].w[1]) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
@@ -516,7 +516,7 @@ bid64_to_uint32_xrnint (UINT64 x
// check for midpoints
if ((fstar.w[1] == 0) && fstar.w[0] &&
(fstar.w[0] <= ten2mk128trunc[ind - 1].w[1])) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// the result is a midpoint; round to nearest
if (Cstar & 0x01) { // Cstar is odd; MP in [EVEN, ODD]
@@ -667,9 +667,9 @@ bid64_to_uint32_floor (UINT64 x
// Note: 0xa00000000*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0xa00000000ull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -694,7 +694,7 @@ bid64_to_uint32_floor (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -854,9 +854,9 @@ bid64_to_uint32_xfloor (UINT64 x
// Note: 0xa00000000*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0xa00000000ull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -883,7 +883,7 @@ bid64_to_uint32_xfloor (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1064,9 +1064,9 @@ bid64_to_uint32_ceil (UINT64 x
// Note: 0x9fffffff6*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x9fffffff6ull * ten2k64[q - 11];
if (C1 > tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -1085,7 +1085,7 @@ bid64_to_uint32_ceil (UINT64 x
res = 0x00000001;
BID_RETURN (res);
} else { // if (1 <= q + exp <= 10, 1 <= q <= 16, -15 <= exp <= 9)
- // x <= -1 or 1 <= x <= 2^32 - 1 so if positive, x can be
+ // x <= -1 or 1 <= x <= 2^32 - 1 so if positive, x can be
// rounded to nearest to a 32-bit unsigned integer
if (x_sign) { // x <= -1
// set invalid flag
@@ -1104,7 +1104,7 @@ bid64_to_uint32_ceil (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1283,9 +1283,9 @@ bid64_to_uint32_xceil (UINT64 x
// Note: 0x9fffffff6*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x9fffffff6ull * ten2k64[q - 11];
if (C1 > tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -1306,7 +1306,7 @@ bid64_to_uint32_xceil (UINT64 x
res = 0x00000001;
BID_RETURN (res);
} else { // if (1 <= q + exp <= 10, 1 <= q <= 16, -15 <= exp <= 9)
- // x <= -1 or 1 <= x < 2^32 so if positive, x can be
+ // x <= -1 or 1 <= x < 2^32 so if positive, x can be
// rounded to nearest to a 32-bit unsigned integer
if (x_sign) { // x <= -1
// set invalid flag
@@ -1325,7 +1325,7 @@ bid64_to_uint32_xceil (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1385,13 +1385,13 @@ bid64_to_uint32_xceil (UINT64 x
#if DECIMAL_CALL_BY_REFERENCE
void
bid64_to_uint32_int (unsigned int *pres, UINT64 * px
- _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
+ _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
{
UINT64 x = *px;
#else
unsigned int
bid64_to_uint32_int (UINT64 x
- _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
+ _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
{
#endif
unsigned int res;
@@ -1507,9 +1507,9 @@ bid64_to_uint32_int (UINT64 x
// Note: 0xa00000000*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0xa00000000ull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -1525,7 +1525,7 @@ bid64_to_uint32_int (UINT64 x
res = 0x00000000;
BID_RETURN (res);
} else { // if (1 <= q + exp <= 10, 1 <= q <= 16, -15 <= exp <= 9)
- // x <= -1 or 1 <= x < 2^32 so if positive, x can be
+ // x <= -1 or 1 <= x < 2^32 so if positive, x can be
// rounded to nearest to a 32-bit unsigned integer
if (x_sign) { // x <= -1
// set invalid flag
@@ -1544,7 +1544,7 @@ bid64_to_uint32_int (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1703,9 +1703,9 @@ bid64_to_uint32_xint (UINT64 x
// Note: 0xa00000000*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0xa00000000ull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -1723,7 +1723,7 @@ bid64_to_uint32_xint (UINT64 x
res = 0x00000000;
BID_RETURN (res);
} else { // if (1 <= q + exp <= 10, 1 <= q <= 16, -15 <= exp <= 9)
- // x <= -1 or 1 <= x < 2^32 so if positive, x can be
+ // x <= -1 or 1 <= x < 2^32 so if positive, x can be
// rounded to nearest to a 32-bit unsigned integer
if (x_sign) { // x <= -1
// set invalid flag
@@ -1742,7 +1742,7 @@ bid64_to_uint32_xint (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1922,9 +1922,9 @@ bid64_to_uint32_rninta (UINT64 x
// Note: 0x9fffffffb*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x9fffffffbull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -1959,7 +1959,7 @@ bid64_to_uint32_rninta (UINT64 x
res = 0x00000001; // return +1
}
} else { // if (1 <= q + exp <= 10, 1 <= q <= 16, -15 <= exp <= 9)
- // -2^32-1/2 <= x <= -1 or 1 <= x < 2^32-1/2 so if positive, x can be
+ // -2^32-1/2 <= x <= -1 or 1 <= x < 2^32-1/2 so if positive, x can be
// rounded to nearest to a 32-bit unsigned integer
if (x_sign) { // x <= -1
// set invalid flag
@@ -1979,7 +1979,7 @@ bid64_to_uint32_rninta (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -2139,9 +2139,9 @@ bid64_to_uint32_xrninta (UINT64 x
// Note: 0x9fffffffb*10^(q-11) has q-1 or q digits, where q <= 16
tmp64 = 0x9fffffffbull * ten2k64[q - 11];
if (C1 >= tmp64) {
- // set invalid flag
+ // set invalid flag
*pfpsf |= INVALID_EXCEPTION;
- // return Integer Indefinite
+ // return Integer Indefinite
res = 0x80000000;
BID_RETURN (res);
}
@@ -2180,7 +2180,7 @@ bid64_to_uint32_xrninta (UINT64 x
// set inexact flag
*pfpsf |= INEXACT_EXCEPTION;
} else { // if (1 <= q + exp <= 10, 1 <= q <= 16, -15 <= exp <= 9)
- // -2^32-1/2 <= x <= -1 or 1 <= x < 2^32-1/2 so if positive, x can be
+ // -2^32-1/2 <= x <= -1 or 1 <= x < 2^32-1/2 so if positive, x can be
// rounded to nearest to a 32-bit unsigned integer
if (x_sign) { // x <= -1
// set invalid flag
@@ -2200,7 +2200,7 @@ bid64_to_uint32_xrninta (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
diff --git a/libgcc/config/libbid/bid64_to_uint64.c b/libgcc/config/libbid/bid64_to_uint64.c
index 42af4c9..f00afbe 100644
--- a/libgcc/config/libbid/bid64_to_uint64.c
+++ b/libgcc/config/libbid/bid64_to_uint64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -148,7 +148,7 @@ bid64_to_uint64_rnint (UINT64 x
// else cases that can be rounded to a 64-bit int fall through
// to '1 <= q + exp <= 20'
} else { // if (2 <= q <= 16) => 5 <= 21 - q <= 19
- // Note: C * 10^(21-q) has 20 or 21 digits; 0x9fffffffffffffffb
+ // Note: C * 10^(21-q) has 20 or 21 digits; 0x9fffffffffffffffb
// has 21 digits
__mul_64x64_to_128MACH (C, C1, ten2k64[21 - q]);
if (C.w[1] > 0x09 ||
@@ -208,7 +208,7 @@ bid64_to_uint64_rnint (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -237,7 +237,7 @@ bid64_to_uint64_rnint (UINT64 x
// check for midpoints
if ((fstar.w[1] == 0) && fstar.w[0] &&
(fstar.w[0] <= ten2mk128trunc[ind - 1].w[1])) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// the result is a midpoint; round to nearest
if (Cstar & 0x01) { // Cstar is odd; MP in [EVEN, ODD]
@@ -384,7 +384,7 @@ bid64_to_uint64_xrnint (UINT64 x
// else cases that can be rounded to a 64-bit int fall through
// to '1 <= q + exp <= 20'
} else { // if (2 <= q <= 16) => 5 <= 21 - q <= 19
- // Note: C * 10^(21-q) has 20 or 21 digits; 0x9fffffffffffffffb
+ // Note: C * 10^(21-q) has 20 or 21 digits; 0x9fffffffffffffffb
// has 21 digits
__mul_64x64_to_128MACH (C, C1, ten2k64[21 - q]);
if (C.w[1] > 0x09 ||
@@ -448,7 +448,7 @@ bid64_to_uint64_xrnint (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -513,7 +513,7 @@ bid64_to_uint64_xrnint (UINT64 x
// check for midpoints
if ((fstar.w[1] == 0) && fstar.w[0] &&
(fstar.w[0] <= ten2mk128trunc[ind - 1].w[1])) {
- // ten2mk128trunc[ind -1].w[1] is identical to
+ // ten2mk128trunc[ind -1].w[1] is identical to
// ten2mk128[ind -1].w[1]
// the result is a midpoint; round to nearest
if (Cstar & 0x01) { // Cstar is odd; MP in [EVEN, ODD]
@@ -659,7 +659,7 @@ bid64_to_uint64_floor (UINT64 x
// else cases that can be rounded to a 64-bit int fall through
// to '1 <= q + exp <= 20'
} else { // if (2 <= q <= 16) => 5 <= 21 - q <= 19
- // Note: C * 10^(21-q) has 20 or 21 digits; 0xa0000000000000000
+ // Note: C * 10^(21-q) has 20 or 21 digits; 0xa0000000000000000
// has 21 digits
__mul_64x64_to_128MACH (C, C1, ten2k64[21 - q]);
if (C.w[1] >= 0x0a) {
@@ -691,7 +691,7 @@ bid64_to_uint64_floor (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -845,7 +845,7 @@ bid64_to_uint64_xfloor (UINT64 x
// else cases that can be rounded to a 64-bit int fall through
// to '1 <= q + exp <= 20'
} else { // if (2 <= q <= 16) => 5 <= 21 - q <= 19
- // Note: C * 10^(21-q) has 20 or 21 digits; 0xa0000000000000000
+ // Note: C * 10^(21-q) has 20 or 21 digits; 0xa0000000000000000
// has 21 digits
__mul_64x64_to_128MACH (C, C1, ten2k64[21 - q]);
if (C.w[1] >= 0x0a) {
@@ -879,7 +879,7 @@ bid64_to_uint64_xfloor (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1100,7 +1100,7 @@ bid64_to_uint64_ceil (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1321,7 +1321,7 @@ bid64_to_uint64_xceil (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1381,13 +1381,13 @@ bid64_to_uint64_xceil (UINT64 x
#if DECIMAL_CALL_BY_REFERENCE
void
bid64_to_uint64_int (UINT64 * pres, UINT64 * px
- _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
+ _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
{
UINT64 x = *px;
#else
UINT64
bid64_to_uint64_int (UINT64 x
- _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
+ _EXC_FLAGS_PARAM _EXC_MASKS_PARAM _EXC_INFO_PARAM)
{
#endif
UINT64 res;
@@ -1498,7 +1498,7 @@ bid64_to_uint64_int (UINT64 x
// else cases that can be rounded to a 64-bit int fall through
// to '1 <= q + exp <= 20'
} else { // if (2 <= q <= 16) => 5 <= 21 - q <= 19
- // Note: C * 10^(21-q) has 20 or 21 digits; 0xa0000000000000000
+ // Note: C * 10^(21-q) has 20 or 21 digits; 0xa0000000000000000
// has 21 digits
__mul_64x64_to_128MACH (C, C1, ten2k64[21 - q]);
if (C.w[1] >= 0x0a) {
@@ -1540,7 +1540,7 @@ bid64_to_uint64_int (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1693,7 +1693,7 @@ bid64_to_uint64_xint (UINT64 x
// else cases that can be rounded to a 64-bit int fall through
// to '1 <= q + exp <= 20'
} else { // if (2 <= q <= 16) => 5 <= 21 - q <= 19
- // Note: C * 10^(21-q) has 20 or 21 digits; 0xa0000000000000000
+ // Note: C * 10^(21-q) has 20 or 21 digits; 0xa0000000000000000
// has 21 digits
__mul_64x64_to_128MACH (C, C1, ten2k64[21 - q]);
if (C.w[1] >= 0x0a) {
@@ -1737,7 +1737,7 @@ bid64_to_uint64_xint (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = C1 * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -1912,7 +1912,7 @@ bid64_to_uint64_rninta (UINT64 x
// else cases that can be rounded to a 64-bit int fall through
// to '1 <= q + exp <= 20'
} else { // if (2 <= q <= 16) => 5 <= 21 - q <= 19
- // Note: C * 10^(21-q) has 20 or 21 digits; 0x9fffffffffffffffb
+ // Note: C * 10^(21-q) has 20 or 21 digits; 0x9fffffffffffffffb
// has 21 digits
__mul_64x64_to_128MACH (C, C1, ten2k64[21 - q]);
if (C.w[1] > 0x09 ||
@@ -1972,7 +1972,7 @@ bid64_to_uint64_rninta (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
@@ -2134,7 +2134,7 @@ bid64_to_uint64_xrninta (UINT64 x
// else cases that can be rounded to a 64-bit int fall through
// to '1 <= q + exp <= 20'
} else { // if (2 <= q <= 16) => 5 <= 21 - q <= 19
- // Note: C * 10^(21-q) has 20 or 21 digits; 0x9fffffffffffffffb
+ // Note: C * 10^(21-q) has 20 or 21 digits; 0x9fffffffffffffffb
// has 21 digits
__mul_64x64_to_128MACH (C, C1, ten2k64[21 - q]);
if (C.w[1] > 0x09 ||
@@ -2198,7 +2198,7 @@ bid64_to_uint64_xrninta (UINT64 x
// C* is actually floor(C*) in this case
// C* and f* need shifting and masking, as shown by
// shiftright128[] and maskhigh128[]
- // 1 <= x <= 15
+ // 1 <= x <= 15
// kx = 10^(-x) = ten2mk64[ind - 1]
// C* = (C1 + 1/2 * 10^x) * 10^(-x)
// the approximation of 10^(-x) was rounded up to 54 bits
diff --git a/libgcc/config/libbid/bid64_to_uint8.c b/libgcc/config/libbid/bid64_to_uint8.c
index 1988c25..3affa93 100644
--- a/libgcc/config/libbid/bid64_to_uint8.c
+++ b/libgcc/config/libbid/bid64_to_uint8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 1296fd9..870ba82 100644
--- a/libgcc/config/libbid/bid_b2d.h
+++ b/libgcc/config/libbid/bid_b2d.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 6df39f6..daca2ff 100644
--- a/libgcc/config/libbid/bid_binarydecimal.c
+++ b/libgcc/config/libbid/bid_binarydecimal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -144323,7 +144323,7 @@ bid32_to_binary64 (UINT32 x
// Check for exponent underflow and compensate by shifting the product
// Cut off the process at precision+2, since we can't really shift further
-
+
c_prov = z.w[5];
// Round using round-sticky words
@@ -145721,7 +145721,7 @@ binary64_to_bid32 (double x
c_prov = z.w[5];
// Test inexactness and underflow (when testing tininess before rounding)
-
+
if ((z.w[4] != 0) || (z.w[3] != 0)) {
*pfpsf |= INEXACT_EXCEPTION;
if (c_prov < 1000000ull)
@@ -145743,7 +145743,7 @@ binary64_to_bid32 (double x
e_out = e_out + 1;
}
}
-
+
// Check for overflow
if (e_out > 90 + 101) {
@@ -145887,7 +145887,7 @@ binary80_to_bid32 (BINARY80 x
if (c_prov < 1000000ull)
*pfpsf |= UNDERFLOW_EXCEPTION;
}
-
+
// Round using round-sticky words
// If we spill over into the next decade, correct
// Flag underflow where it may be needed even for |result| = SNN
@@ -146520,7 +146520,7 @@ binary80_to_bid64 (BINARY80 x
if (c_prov < 1000000000000000ull)
*pfpsf |= UNDERFLOW_EXCEPTION;
}
-
+
// Round using round-sticky words
// If we spill over into the next decade, correct
// Flag underflow where it may be needed even for |result| = SNN
@@ -146678,7 +146678,7 @@ binary128_to_bid64 (BINARY128 x
if (c_prov < 1000000000000000ull)
*pfpsf |= UNDERFLOW_EXCEPTION;
}
-
+
// Round using round-sticky words
// If we spill over into the next decade, correct
// Flag underflow where it may be needed even for |result| = SNN
diff --git a/libgcc/config/libbid/bid_conf.h b/libgcc/config/libbid/bid_conf.h
index e054a3f..0f39d58 100644
--- a/libgcc/config/libbid/bid_conf.h
+++ b/libgcc/config/libbid/bid_conf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -567,7 +567,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define DECIMAL_CALL_BY_REFERENCE 0
#endif
-// If DECIMAL_GLOBAL_ROUNDING is defined then the rounding mode is a global
+// If DECIMAL_GLOBAL_ROUNDING is defined then the rounding mode is a global
// variable _IDEC_glbround, otherwise it is passed as a parameter when needed
#ifndef DECIMAL_GLOBAL_ROUNDING
@@ -579,7 +579,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#endif
// If DECIMAL_GLOBAL_EXCEPTION_FLAGS is defined then the exception status flags
-// are represented by a global variable _IDEC_glbflags, otherwise they are
+// are represented by a global variable _IDEC_glbflags, otherwise they are
// passed as a parameter when needed
#ifndef DECIMAL_GLOBAL_EXCEPTION_FLAGS
@@ -591,7 +591,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#endif
// If DECIMAL_ALTERNATE_EXCEPTION_HANDLING is defined then the exception masks
-// are examined and exception handling information is provided to the caller
+// are examined and exception handling information is provided to the caller
// if alternate exception handling is necessary
#ifndef DECIMAL_ALTERNATE_EXCEPTION_HANDLING
@@ -604,15 +604,15 @@ typedef unsigned int _IDEC_flags; // could be a struct with diagnostic info
#if DECIMAL_ALTERNATE_EXCEPTION_HANDLING
// If DECIMAL_GLOBAL_EXCEPTION_MASKS is defined then the exception mask bits
// are represented by a global variable _IDEC_exceptionmasks, otherwise they
- // are passed as a parameter when needed; DECIMAL_GLOBAL_EXCEPTION_MASKS is
+ // are passed as a parameter when needed; DECIMAL_GLOBAL_EXCEPTION_MASKS is
// ignored
// if DECIMAL_ALTERNATE_EXCEPTION_HANDLING is not defined
// **************************************************************************
#define DECIMAL_GLOBAL_EXCEPTION_MASKS 0
// **************************************************************************
- // If DECIMAL_GLOBAL_EXCEPTION_INFO is defined then the alternate exception
- // handling information is represented by a global data structure
+ // If DECIMAL_GLOBAL_EXCEPTION_INFO is defined then the alternate exception
+ // handling information is represented by a global data structure
// _IDEC_glbexcepthandling, otherwise it is passed by reference as a
// parameter when needed; DECIMAL_GLOBAL_EXCEPTION_INFO is ignored
// if DECIMAL_ALTERNATE_EXCEPTION_HANDLING is not defined
@@ -623,9 +623,9 @@ typedef unsigned int _IDEC_flags; // could be a struct with diagnostic info
// Notes: 1) rnd_mode from _RND_MODE_ARG is used by the caller of a function
// from this library, and can be any name
-// 2) rnd_mode and prnd_mode from _RND_MODE_PARAM are fixed names
+// 2) rnd_mode and prnd_mode from _RND_MODE_PARAM are fixed names
// and *must* be used in the library functions
-// 3) _IDEC_glbround is the fixed name for the global variable holding
+// 3) _IDEC_glbround is the fixed name for the global variable holding
// the rounding mode
#if !DECIMAL_GLOBAL_ROUNDING
@@ -649,10 +649,10 @@ typedef unsigned int _IDEC_flags; // could be a struct with diagnostic info
#endif
// Notes: 1) pfpsf from _EXC_FLAGS_ARG is used by the caller of a function
-// from this library, and can be any name
-// 2) pfpsf from _EXC_FLAGS_PARAM is a fixed name and *must* be used
+// from this library, and can be any name
+// 2) pfpsf from _EXC_FLAGS_PARAM is a fixed name and *must* be used
// in the library functions
-// 3) _IDEC_glbflags is the fixed name for the global variable holding
+// 3) _IDEC_glbflags is the fixed name for the global variable holding
// the floating-point status flags
#if !DECIMAL_GLOBAL_EXCEPTION_FLAGS
#define _EXC_FLAGS_ARG , pfpsf
@@ -686,7 +686,7 @@ extern BID_THREAD _IDEC_excepthandling _IDEC_glbexcepthandling;
// from this library, and can be any name
// 2) exc_mask and pexc_mask from _EXC_MASKS_PARAM are fixed names
// and *must* be used in the library functions
- // 3) _IDEC_glbexceptionmasks is the fixed name for the global
+ // 3) _IDEC_glbexceptionmasks is the fixed name for the global
// variable holding the floating-point exception masks
#if !DECIMAL_GLOBAL_EXCEPTION_MASKS
#if DECIMAL_CALL_BY_REFERENCE
@@ -704,9 +704,9 @@ extern BID_THREAD _IDEC_excepthandling _IDEC_glbexcepthandling;
// Notes: 1) pexc_info from _EXC_INFO_ARG is used by the caller of a function
// from this library, and can be any name
- // 2) pexc_info from _EXC_INFO_PARAM is a fixed name and *must* be
+ // 2) pexc_info from _EXC_INFO_PARAM is a fixed name and *must* be
// used in the library functions
- // 3) _IDEC_glbexcepthandling is the fixed name for the global
+ // 3) _IDEC_glbexcepthandling is the fixed name for the global
// variable holding the floating-point exception information
#if !DECIMAL_GLOBAL_EXCEPTION_INFO
#define _EXC_INFO_ARG , pexc_info
@@ -842,9 +842,9 @@ extern BID_THREAD _IDEC_excepthandling _IDEC_glbexcepthandling;
#if BID_BIG_ENDIAN
#define COPY_ARG_REF(arg_name) \
- UINT128 arg_name={ pbid_##arg_name->w[1], pbid_##arg_name->w[0]};
+ UINT128 arg_name={ { pbid_##arg_name->w[1], pbid_##arg_name->w[0] }};
#define COPY_ARG_VAL(arg_name) \
- UINT128 arg_name={ bid_##arg_name.w[1], bid_##arg_name.w[0]};
+ UINT128 arg_name={ { bid_##arg_name.w[1], bid_##arg_name.w[0] }};
#else
#define COPY_ARG_REF(arg_name) \
UINT128 arg_name=*pbid_##arg_name;
diff --git a/libgcc/config/libbid/bid_convert_data.c b/libgcc/config/libbid/bid_convert_data.c
index 402e815..2509718 100644
--- a/libgcc/config/libbid/bid_convert_data.c
+++ b/libgcc/config/libbid/bid_convert_data.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 2f7dff6..c944a8d 100644
--- a/libgcc/config/libbid/bid_decimal_data.c
+++ b/libgcc/config/libbid/bid_decimal_data.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 d68148b..d6dad81 100644
--- a/libgcc/config/libbid/bid_decimal_globals.c
+++ b/libgcc/config/libbid/bid_decimal_globals.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 42a31ce..842ff62 100644
--- a/libgcc/config/libbid/bid_div_macros.h
+++ b/libgcc/config/libbid/bid_div_macros.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -27,7 +27,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_internal.h"
#define FENCE __fence
-//#define FENCE
+//#define FENCE
//#define DOUBLE_EXTENDED_ON
@@ -53,7 +53,7 @@ __div_128_by_128 (UINT128 * pCQ, UINT128 * pCR, UINT128 CX, UINT128 CY) {
pCR->w[0] = CX.w[0] - pCQ->w[0] * CY.w[0];
} else {
- // This path works for CX<2^116 only
+ // This path works for CX<2^116 only
// 2^64
d64.i = 0x43f0000000000000;
@@ -328,7 +328,7 @@ __div_128_by_128 (UINT128 * pCQ, UINT128 * pCR, UINT128 CX0, UINT128 CY) {
if (CY.w[1] < (UINT64) (1 << (64 - 51))
&& (__unsigned_compare_gt_128 (CX, CY51))) {
- // Q > 2^51
+ // Q > 2^51
// 2^(-49)*CX/CY
d49.i = 0x3ce0000000000000ull;
@@ -397,7 +397,7 @@ __div_256_by_128 (UINT128 * pCQ, UINT256 * pCA4, UINT128 CY) {
int_double t64, d49, d60;
double lx, ly, lq, d128, d192;
- // the quotient is assumed to be at most 113 bits,
+ // the quotient is assumed to be at most 113 bits,
// as needed by BID128 divide routines
// initial dividend
@@ -467,7 +467,7 @@ __div_256_by_128 (UINT128 * pCQ, UINT256 * pCA4, UINT128 CY) {
&&
(__unsigned_compare_gt_128 (CA4, CY51))))
{
- // Q > 2^51
+ // Q > 2^51
// 2^(-49)*CA4/CY
d49.i = 0x3ce0000000000000ull;
diff --git a/libgcc/config/libbid/bid_dpd.c b/libgcc/config/libbid/bid_dpd.c
index 9e1e552..389772f 100644
--- a/libgcc/config/libbid/bid_dpd.c
+++ b/libgcc/config/libbid/bid_dpd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -598,7 +598,7 @@ bid_to_bid128 (UINT128 bq) {
if ((comb & 0x1f000) == 0x1f000) { //NaN
ba &= 0xfe003fffffffffffULL; // make exponent 0
- bcoeff &= 0x00003fffffffffffull; // NaN payloat is only T.
+ bcoeff &= 0x00003fffffffffffull; // NaN payloat is only T.
if ((bcoeff > 0x0000314dc6448d93ULL) || // significand is non-canonical
((bcoeff == 0x0000314dc6448d93ULL)
&& (bb >= 0x38c15b0a00000000ULL))
@@ -660,7 +660,7 @@ bid32_canonize (UINT32 ba) {
if ((comb & 0x7c0) == 0x7c0) { //NaN
ba &= 0xfe0fffff; // make exponent 0
- bcoeff &= 0x000fffff; // NaN payloat is only T.
+ bcoeff &= 0x000fffff; // NaN payloat is only T.
if (bcoeff >= 1000000)
ba &= 0xfff00000; //treat non-canonical significand
return ba;
@@ -698,7 +698,7 @@ bid64_canonize (UINT64 ba) {
if ((comb & 0x1f00) == 0x1f00) { //NaN
ba &= 0xfe03ffffffffffffULL; // make exponent 0
- bcoeff &= 0x0003ffffffffffffull; // NaN payloat is only T.
+ bcoeff &= 0x0003ffffffffffffull; // NaN payloat is only T.
if (bcoeff >= 1000000000000000ull)
ba &= 0xfe00000000000000ull; // treat non canonical significand and zero G6-G12
return ba;
@@ -742,7 +742,7 @@ bid128_canonize (UINT128 bq) {
if ((comb & 0x1f000) == 0x1f000) { //NaN
ba &= 0xfe003fffffffffffULL; // make exponent 0
- bcoeff &= 0x00003fffffffffffull; // NaN payload is only T.
+ bcoeff &= 0x00003fffffffffffull; // NaN payload is only T.
if ((bcoeff > 0x0000314dc6448d93ULL) || // significand is non-canonical
((bcoeff == 0x0000314dc6448d93ULL)
diff --git a/libgcc/config/libbid/bid_flag_operations.c b/libgcc/config/libbid/bid_flag_operations.c
index a848484..7126d53 100644
--- a/libgcc/config/libbid/bid_flag_operations.c
+++ b/libgcc/config/libbid/bid_flag_operations.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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
// Note the following definitions from bid_conf.h: if the status flags are
// global, they have a fixed name recognized by the library functions:
// _IDEC_glbflags; pfpsf, defined as &_IDEC_glbflags, can be used instead; no
-// argument is passed for the status flags to the library functions; if the
+// argument is passed for the status flags to the library functions; if the
// status flags are local then they are passed as an arument, always by
// reference, to the library functions
//
@@ -67,7 +67,7 @@ void
lowerFlags (_IDEC_flags * pflagsmask _EXC_FLAGS_PARAM) {
// *pflagsmask is the logical OR of the flags to be cleared, e.g.
// *pflagsmask =INVALID_EXCEPTION | ZERO_DIVIDE_EXCEPTION | OVERFLOW_EXCEPTION
- // UNDERFLOW_EXCEPTION | INEXACT_EXCEPTION to clear all five IEEE 754R
+ // UNDERFLOW_EXCEPTION | INEXACT_EXCEPTION to clear all five IEEE 754R
// exception flags
*pfpsf = *pfpsf & ~(*pflagsmask & BID_IEEE_FLAGS);
}
@@ -75,8 +75,8 @@ lowerFlags (_IDEC_flags * pflagsmask _EXC_FLAGS_PARAM) {
void
lowerFlags (_IDEC_flags flagsmask _EXC_FLAGS_PARAM) {
// flagsmask is the logical OR of the flags to be cleared, e.g.
- // flagsmask = INVALID_EXCEPTION | ZERO_DIVIDE_EXCEPTION | OVERFLOW_EXCEPTION
- // UNDERFLOW_EXCEPTION | INEXACT_EXCEPTION to clear all five IEEE 754R
+ // flagsmask = INVALID_EXCEPTION | ZERO_DIVIDE_EXCEPTION | OVERFLOW_EXCEPTION
+ // UNDERFLOW_EXCEPTION | INEXACT_EXCEPTION to clear all five IEEE 754R
// exception flags
*pfpsf = *pfpsf & ~(flagsmask & BID_IEEE_FLAGS);
}
@@ -86,10 +86,10 @@ lowerFlags (_IDEC_flags flagsmask _EXC_FLAGS_PARAM) {
void
testFlags (_IDEC_flags * praised,
_IDEC_flags * pflagsmask _EXC_FLAGS_PARAM) {
- // *praised is a pointer to the result, i.e. the logical OR of the flags
+ // *praised is a pointer to the result, i.e. the logical OR of the flags
// selected by *pflagsmask that are set; e.g. if
// *pflagsmask = INVALID_EXCEPTION | UNDERFLOW_EXCEPTION | INEXACT_EXCEPTION
- // and only the invalid and inexact flags are raised (set) then upon return
+ // and only the invalid and inexact flags are raised (set) then upon return
// *praised = INVALID_EXCEPTION | INEXACT_EXCEPTION
*praised = *pfpsf & (*pflagsmask & BID_IEEE_FLAGS);
}
@@ -97,7 +97,7 @@ testFlags (_IDEC_flags * praised,
_IDEC_flags
testFlags (_IDEC_flags flagsmask _EXC_FLAGS_PARAM) {
_IDEC_flags raised;
- // the raturn value raised is the logical OR of the flags
+ // the raturn value raised is the logical OR of the flags
// selected by flagsmask, that are set; e.g. if
// flagsmask = INVALID_EXCEPTION | UNDERFLOW_EXCEPTION | INEXACT_EXCEPTION and
// only the invalid and inexact flags are raised (set) then the return value
@@ -156,9 +156,9 @@ void
restoreFlags (_IDEC_flags flagsvalues,
_IDEC_flags flagsmask _EXC_FLAGS_PARAM) {
// restore the status flags selected by flagsmask to the values speciafied
- // (as a logical OR) in flagsvalues; e.g. if
+ // (as a logical OR) in flagsvalues; e.g. if
// flagsmask = INVALID_EXCEPTION | UNDERFLOW_EXCEPTION | INEXACT_EXCEPTION
- // and only the invalid and inexact flags are raised (set) in flagsvalues
+ // and only the invalid and inexact flags are raised (set) in flagsvalues
// then upon return the invalid status flag will be set, the underflow status
// flag will be clear, and the inexact status flag will be set
*pfpsf = *pfpsf & ~(flagsmask & BID_IEEE_FLAGS);
@@ -176,7 +176,7 @@ saveFlags (_IDEC_flags * pflagsvalues,
// *pflagsmask; e.g. if
// *pflagsmask = INVALID_EXCEPTION | UNDERFLOW_EXCEPTION | INEXACT_EXCEPTION
// and only the invalid and inexact flags are raised (set) in the status word,
- // then upon return the value in *pflagsvalues will have the invalid status
+ // then upon return the value in *pflagsvalues will have the invalid status
// flag set, the underflow status flag clear, and the inexact status flag set
*pflagsvalues = *pfpsf & (*pflagsmask & BID_IEEE_FLAGS);
}
@@ -184,11 +184,11 @@ saveFlags (_IDEC_flags * pflagsvalues,
_IDEC_flags
saveFlags (_IDEC_flags flagsmask _EXC_FLAGS_PARAM) {
_IDEC_flags flagsvalues;
- // return the status flags specified (as a logical OR) in flagsmask; e.g. if
+ // return the status flags specified (as a logical OR) in flagsmask; e.g. if
// flagsmask = INVALID_EXCEPTION | UNDERFLOW_EXCEPTION | INEXACT_EXCEPTION
// and only the invalid and inexact flags are raised (set) in the status word,
- // then the return value will have the invalid status flag set, the
- // underflow status flag clear, and the inexact status flag set
+ // then the return value will have the invalid status flag set, the
+ // underflow status flag clear, and the inexact status flag set
flagsvalues = *pfpsf & (flagsmask & BID_IEEE_FLAGS);
return (flagsvalues);
}
diff --git a/libgcc/config/libbid/bid_from_int.c b/libgcc/config/libbid/bid_from_int.c
index 5c53320..2a65141 100644
--- a/libgcc/config/libbid/bid_from_int.c
+++ b/libgcc/config/libbid/bid_from_int.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -102,15 +102,15 @@ bid64_from_int64 (SINT64 x
res =
x_sign | 0x6c70000000000000ull | (C & 0x0007ffffffffffffull);
}
- } else { // |C| >= 10^16 and the result may be inexact
+ } else { // |C| >= 10^16 and the result may be inexact
// the smallest |C| is 10^16 which has 17 decimal digits
// the largest |C| is 0x8000000000000000 = 9223372036854775808 w/ 19 digits
- if (C < 0x16345785d8a0000ull) { // x < 10^17
+ if (C < 0x16345785d8a0000ull) { // x < 10^17
q = 17;
ind = 1; // number of digits to remove for q = 17
} else if (C < 0xde0b6b3a7640000ull) { // C < 10^18
q = 18;
- ind = 2; // number of digits to remove for q = 18
+ ind = 2; // number of digits to remove for q = 18
} else { // C < 10^19
q = 19;
ind = 3; // number of digits to remove for q = 19
@@ -162,7 +162,7 @@ bid64_from_int64 (SINT64 x
}
if (res < 0x0020000000000000ull) { // res < 2^53
res = x_sign | (((UINT64) ind + 398) << 53) | res;
- } else { // res >= 2^53
+ } else { // res >= 2^53
res =
x_sign | 0x6000000000000000ull | (((UINT64) ind + 398) << 51) |
(res & 0x0007ffffffffffffull);
@@ -200,15 +200,15 @@ bid64_from_uint64 (UINT64 x
} else { // x >= 2^53
res = 0x6c70000000000000ull | (x & 0x0007ffffffffffffull);
}
- } else { // x >= 10^16 and the result may be inexact
+ } else { // x >= 10^16 and the result may be inexact
// the smallest x is 10^16 which has 17 decimal digits
// the largest x is 0xffffffffffffffff = 18446744073709551615 w/ 20 digits
- if (x < 0x16345785d8a0000ull) { // x < 10^17
+ if (x < 0x16345785d8a0000ull) { // x < 10^17
q = 17;
ind = 1; // number of digits to remove for q = 17
} else if (x < 0xde0b6b3a7640000ull) { // x < 10^18
q = 18;
- ind = 2; // number of digits to remove for q = 18
+ ind = 2; // number of digits to remove for q = 18
} else if (x < 0x8ac7230489e80000ull) { // x < 10^19
q = 19;
ind = 3; // number of digits to remove for q = 19
@@ -262,7 +262,7 @@ bid64_from_uint64 (UINT64 x
}
if (res < 0x0020000000000000ull) { // res < 2^53
res = (((UINT64) ind + 398) << 53) | res;
- } else { // res >= 2^53
+ } else { // res >= 2^53
res = 0x6000000000000000ull | (((UINT64) ind + 398) << 51) |
(res & 0x0007ffffffffffffull);
}
diff --git a/libgcc/config/libbid/bid_functions.h b/libgcc/config/libbid/bid_functions.h
index cce87eb..2cca554 100644
--- a/libgcc/config/libbid/bid_functions.h
+++ b/libgcc/config/libbid/bid_functions.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 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 71f8c3e..2a9509d 100644
--- a/libgcc/config/libbid/bid_gcc_intrinsics.h
+++ b/libgcc/config/libbid/bid_gcc_intrinsics.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -290,17 +290,17 @@ union decimal32 {
_Decimal32 d;
UINT32 i;
};
-
+
union decimal64 {
_Decimal64 d;
UINT64 i;
};
-
+
union decimal128 {
_Decimal128 d;
UINT128 i;
};
-
+
#if BID_HAS_TF_MODE
union float128 {
TFtype f;
diff --git a/libgcc/config/libbid/bid_inline_add.h b/libgcc/config/libbid/bid_inline_add.h
index 9ca41a2..2bec7b1 100644
--- a/libgcc/config/libbid/bid_inline_add.h
+++ b/libgcc/config/libbid/bid_inline_add.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -26,31 +26,31 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
* Helper add functions (for fma)
*
* __BID_INLINE__ UINT64 get_add64(
- * UINT64 sign_x, int exponent_x, UINT64 coefficient_x,
- * UINT64 sign_y, int exponent_y, UINT64 coefficient_y,
+ * UINT64 sign_x, int exponent_x, UINT64 coefficient_x,
+ * UINT64 sign_y, int exponent_y, UINT64 coefficient_y,
* int rounding_mode)
*
* __BID_INLINE__ UINT64 get_add128(
- * UINT64 sign_x, int exponent_x, UINT64 coefficient_x,
- * UINT64 sign_y, int final_exponent_y, UINT128 CY,
+ * UINT64 sign_x, int exponent_x, UINT64 coefficient_x,
+ * UINT64 sign_y, int final_exponent_y, UINT128 CY,
* int extra_digits, int rounding_mode)
*
*****************************************************************************
*
* Algorithm description:
*
- * get_add64: same as BID64 add, but arguments are unpacked and there
+ * get_add64: same as BID64 add, but arguments are unpacked and there
* are no special case checks
*
- * get_add128: add 64-bit coefficient to 128-bit product (which contains
- * 16+extra_digits decimal digits),
+ * get_add128: add 64-bit coefficient to 128-bit product (which contains
+ * 16+extra_digits decimal digits),
* return BID64 result
- * - the exponents are compared and the two coefficients are
+ * - the exponents are compared and the two coefficients are
* properly aligned for addition/subtraction
* - multiple paths are needed
* - final result exponent is calculated and the lower term is
- * rounded first if necessary, to avoid manipulating
- * coefficients longer than 128 bits
+ * rounded first if necessary, to avoid manipulating
+ * coefficients longer than 128 bits
*
****************************************************************************/
@@ -67,7 +67,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
///////////////////////////////////////////////////////////////////////
//
-// get_add64() is essentially the same as bid_add(), except that
+// get_add64() is essentially the same as bid_add(), except that
// the arguments are unpacked
//
//////////////////////////////////////////////////////////////////////
@@ -327,13 +327,13 @@ get_add64 (UINT64 sign_x, int exponent_x, UINT64 coefficient_x,
amount = short_recip_scale[extra_digits];
C0_64 = CT.w[1] >> amount;
- // result coefficient
+ // result coefficient
C64 = C0_64 + coefficient_a;
// filter out difficult (corner) cases
- // the following test is equivalent to
- // ( (initial_coefficient_a + Ts) < P_ca &&
- // (initial_coefficient_a + Ts) > P_ca_m1 ),
- // which ensures the number of digits in coefficient_a does not change
+ // the following test is equivalent to
+ // ( (initial_coefficient_a + Ts) < P_ca &&
+ // (initial_coefficient_a + Ts) > P_ca_m1 ),
+ // which ensures the number of digits in coefficient_a does not change
// after adding (the appropriately scaled and rounded) coefficient_b
if ((UINT64) (C64 - 1000000000000000ull - 1) >
9000000000000000ull - 2) {
@@ -371,7 +371,7 @@ get_add64 (UINT64 sign_x, int exponent_x, UINT64 coefficient_x,
amount = short_recip_scale[extra_digits];
C0_64 = CT.w[1] >> amount;
- // result coefficient
+ // result coefficient
C64 = C0_64 + coefficient_a;
} else if (C64 <= 1000000000000000ull) {
// less than 16 digits in result
@@ -392,7 +392,7 @@ get_add64 (UINT64 sign_x, int exponent_x, UINT64 coefficient_x,
amount = short_recip_scale[extra_digits];
C0_64 = CT_new.w[1] >> amount;
- // result coefficient
+ // result coefficient
C64_new = C0_64 + coefficient_a;
if (C64_new < 10000000000000000ull) {
C64 = C64_new;
@@ -412,9 +412,9 @@ get_add64 (UINT64 sign_x, int exponent_x, UINT64 coefficient_x,
if (rmode == 0) //ROUNDING_TO_NEAREST
#endif
if (C64 & 1) {
- // check whether fractional part of initial_P/10^extra_digits
+ // check whether fractional part of initial_P/10^extra_digits
// is exactly .5
- // this is the same as fractional part of
+ // this is the same as fractional part of
// (initial_P + 0.5*10^extra_digits)/10^extra_digits is exactly zero
// get remainder
@@ -555,7 +555,7 @@ __bid_full_round64 (UINT64 sign, int exponent, UINT128 P,
if (rmode == 0) //ROUNDING_TO_NEAREST
#endif
if (C64 & 1) {
- // check whether fractional part of initial_P/10^extra_digits
+ // check whether fractional part of initial_P/10^extra_digits
// is exactly .5
// get remainder
@@ -666,7 +666,7 @@ __bid_full_round64_remainder (UINT64 sign, int exponent, UINT128 P,
if (rmode == 0) //ROUNDING_TO_NEAREST
#endif
if (!remainder_P && (C64 & 1)) {
- // check whether fractional part of initial_P/10^extra_digits
+ // check whether fractional part of initial_P/10^extra_digits
// is exactly .5
// get remainder
@@ -889,7 +889,7 @@ get_add128 (UINT64 sign_x, int exponent_x, UINT64 coefficient_x,
return __bid_full_round64 (sign_y, exponent_y, CT, extra_digits,
rounding_mode, fpsc);
}
- // diff_dec2+extra_digits is the number of digits to eliminate from
+ // diff_dec2+extra_digits is the number of digits to eliminate from
// argument CY
diff_dec2 = exponent_x - final_exponent_y;
@@ -1006,7 +1006,7 @@ get_add128 (UINT64 sign_x, int exponent_x, UINT64 coefficient_x,
CX.w[0] = (coefficient_x + sign_x) ^ sign_x;
CX.w[1] = sign_x;
- // check whether CY (rounded to 16 digits) and CX have
+ // check whether CY (rounded to 16 digits) and CX have
// any digits in the same position
diff_dec2 = final_exponent_y - exponent_x;
@@ -1224,7 +1224,7 @@ BID_normalize (UINT64 sign_z, int exponent_z,
//////////////////////////////////////////////////////////////////////////
//
-// 0*10^ey + cz*10^ez, ey<ez
+// 0*10^ey + cz*10^ez, ey<ez
//
//////////////////////////////////////////////////////////////////////////
diff --git a/libgcc/config/libbid/bid_internal.h b/libgcc/config/libbid/bid_internal.h
index d3c83b5..46d7640 100644
--- a/libgcc/config/libbid/bid_internal.h
+++ b/libgcc/config/libbid/bid_internal.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -109,7 +109,7 @@ UINT64 M; \
* Add/Subtract Macros
*
*********************************************************************/
-// add 64-bit value to 128-bit
+// add 64-bit value to 128-bit
#define __add_128_64(R128, A128, B64) \
{ \
UINT64 R64H; \
@@ -119,7 +119,7 @@ UINT64 R64H; \
R64H ++; \
(R128).w[1] = R64H; \
}
-// subtract 64-bit value from 128-bit
+// subtract 64-bit value from 128-bit
#define __sub_128_64(R128, A128, B64) \
{ \
UINT64 R64H; \
@@ -129,7 +129,7 @@ UINT64 R64H; \
(R128).w[1] = R64H; \
(R128).w[0] = (A128).w[0] - (B64); \
}
-// add 128-bit value to 128-bit
+// add 128-bit value to 128-bit
// assume no carry-out
#define __add_128_128(R128, A128, B128) \
{ \
@@ -177,7 +177,7 @@ UINT64 X1, X0=X; \
S = X1 - Y; \
CY = ((S>X1) || (X1>X0)) ? 1 : 0; \
}
-// increment C128 and check for rounding overflow:
+// increment C128 and check for rounding overflow:
// if (C_128) = 10^34 then (C_128) = 10^33 and increment the exponent
#define INCREMENT(C_128, exp) \
{ \
@@ -191,8 +191,8 @@ UINT64 X1, X0=X; \
} \
}
// decrement C128 and check for rounding underflow, but only at the
-// boundary: if C_128 = 10^33 - 1 and exp > 0 then C_128 = 10^34 - 1
-// and decrement the exponent
+// boundary: if C_128 = 10^33 - 1 and exp > 0 then C_128 = 10^34 - 1
+// and decrement the exponent
#define DECREMENT(C_128, exp) \
{ \
C_128.w[0]--; \
@@ -322,7 +322,7 @@ UINT64 CXH, CXL, CYH, CYL, PL, PH, PM; \
\
(P) = PH + (PM>>32); \
}
-// get full 64x64bit product
+// get full 64x64bit product
//
#define __mul_64x64_to_128_full(P, CX, CY) \
{ \
@@ -1012,7 +1012,7 @@ get_BID64 (UINT64 sgn, int expon, UINT64 coeff, int rmode,
//
-// No overflow/underflow checking
+// No overflow/underflow checking
//
__BID_INLINE__ UINT64
fast_get_BID64 (UINT64 sgn, int expon, UINT64 coeff) {
@@ -1129,7 +1129,7 @@ fast_get_BID64_check_OF (UINT64 sgn, int expon, UINT64 coeff, int rmode,
//
-// No overflow/underflow checking
+// No overflow/underflow checking
// or checking for coefficients equal to 10^16 (after rounding)
//
__BID_INLINE__ UINT64
@@ -1222,7 +1222,7 @@ get_BID64_UF (UINT64 sgn, int expon, UINT64 coeff, UINT64 R, int rmode,
amount = recip_scale[extra_digits];
C64 = QH >> amount;
- //__shr_128(C128, Q_high, amount);
+ //__shr_128(C128, Q_high, amount);
#ifndef IEEE_ROUND_NEAREST_TIES_AWAY
#ifndef IEEE_ROUND_NEAREST
@@ -1301,7 +1301,7 @@ get_BID64_UF (UINT64 sgn, int expon, UINT64 coeff, UINT64 R, int rmode,
//
-// This pack macro doesnot check for coefficients above 2^53
+// This pack macro doesnot check for coefficients above 2^53
//
__BID_INLINE__ UINT64
get_BID64_small_mantissa (UINT64 sgn, int expon, UINT64 coeff,
@@ -1799,7 +1799,7 @@ unpack_BID128_value (UINT64 * psign_x, int *pexponent_x,
pcoefficient_x->w[1] = x.w[1] & SINFINITY_MASK64;
}
*pexponent_x = 0;
- return 0; // NaN or Infinity
+ return 0; // NaN or Infinity
}
coeff.w[0] = x.w[0];
@@ -1853,7 +1853,7 @@ unpack_BID128 (UINT64 * psign_x, int *pexponent_x,
pcoefficient_x->w[0] = 0;
}
*pexponent_x = 0;
- return 0; // NaN or Infinity
+ return 0; // NaN or Infinity
}
coeff.w[0] = px->w[0];
@@ -2060,8 +2060,8 @@ get_BID128 (UINT128 * pres, UINT64 sgn, int expon, UINT128 coeff,
//
-// Macro used for conversions from string
-// (no additional arguments given for rounding mode, status flags)
+// Macro used for conversions from string
+// (no additional arguments given for rounding mode, status flags)
//
__BID_INLINE__ UINT128 *
get_BID128_string (UINT128 * pres, UINT64 sgn, int expon, UINT128 coeff) {
@@ -2183,7 +2183,7 @@ unpack_BID32 (UINT32 * psign_x, int *pexponent_x,
}
//
-// General pack macro for BID32
+// General pack macro for BID32
//
__BID_INLINE__ UINT32
get_BID32 (UINT32 sgn, int expon, UINT64 coeff, int rmode,
diff --git a/libgcc/config/libbid/bid_round.c b/libgcc/config/libbid/bid_round.c
index 20482b5..96f3902 100644
--- a/libgcc/config/libbid/bid_round.c
+++ b/libgcc/config/libbid/bid_round.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -47,15 +47,15 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
* Note: assume invalid encodings are not passed to this function
*
* Round a number C with q decimal digits, represented as a binary integer
- * to q - x digits. Six different routines are provided for different values
- * of q. The maximum value of q used in the library is q = 3 * P - 1 where
- * P = 16 or P = 34 (so q <= 111 decimal digits).
+ * to q - x digits. Six different routines are provided for different values
+ * of q. The maximum value of q used in the library is q = 3 * P - 1 where
+ * P = 16 or P = 34 (so q <= 111 decimal digits).
* The partitioning is based on the following, where Kx is the scaled
* integer representing the value of 10^(-x) rounded up to a number of bits
* sufficient to ensure correct rounding:
*
* --------------------------------------------------------------------------
- * q x max. value of a max number min. number
+ * q x max. value of a max number min. number
* of bits in C of bits in Kx
* --------------------------------------------------------------------------
*
@@ -99,7 +99,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
* GROUP 6: 384 bits
* round384_97_115 ()
*
- * 97 [1,96] 10^97 - 1 < 2^322.23 323 324
+ * 97 [1,96] 10^97 - 1 < 2^322.23 323 324
* ... ... ... ... ...
* 115 [1,114] 10^115 - 1 < 2^382.03 383 384
*
@@ -126,7 +126,7 @@ round64_2_18 (int q,
int ind;
// Note:
- // In round128_2_18() positive numbers with 2 <= q <= 18 will be
+ // In round128_2_18() positive numbers with 2 <= q <= 18 will be
// rounded to nearest only for 1 <= x <= 3:
// x = 1 or x = 2 when q = 17
// x = 2 or x = 3 when q = 18
@@ -229,7 +229,7 @@ round128_19_38 (int q,
int ind;
// Note:
- // In round128_19_38() positive numbers with 19 <= q <= 38 will be
+ // In round128_19_38() positive numbers with 19 <= q <= 38 will be
// rounded to nearest only for 1 <= x <= 23:
// x = 3 or x = 4 when q = 19
// x = 4 or x = 5 when q = 20
@@ -249,11 +249,11 @@ round128_19_38 (int q,
// round a number C with q decimal digits, 19 <= q <= 38
// to q - x digits, 1 <= x <= 37
// C = C + 1/2 * 10^x where the result C fits in 128 bits
- // (because the largest value is 99999999999999999999999999999999999999 +
+ // (because the largest value is 99999999999999999999999999999999999999 +
// 5000000000000000000000000000000000000 =
// 0x4efe43b0c573e7e68a043d8fffffffff, which fits is 127 bits)
- ind = x - 1; // 0 <= ind <= 36
+ ind = x - 1; // 0 <= ind <= 36
if (ind <= 18) { // if 0 <= ind <= 18
tmp64 = C.w[0];
C.w[0] = C.w[0] + midpoint64[ind];
@@ -275,7 +275,7 @@ round128_19_38 (int q,
// Cstar = P256 >> Ex
// fstar = low Ex bits of P256
shift = Ex128m128[ind]; // in [2, 63] but have to consider two cases
- if (ind <= 18) { // if 0 <= ind <= 18
+ if (ind <= 18) { // if 0 <= ind <= 18
Cstar.w[0] = (P256.w[2] >> shift) | (P256.w[3] << (64 - shift));
Cstar.w[1] = (P256.w[3] >> shift);
fstar.w[0] = P256.w[0];
@@ -410,7 +410,7 @@ round192_39_57 (int q,
int ind;
// Note:
- // In round192_39_57() positive numbers with 39 <= q <= 57 will be
+ // In round192_39_57() positive numbers with 39 <= q <= 57 will be
// rounded to nearest only for 5 <= x <= 42:
// x = 23 or x = 24 or x = 5 or x = 6 when q = 39
// x = 24 or x = 25 or x = 6 or x = 7 when q = 40
@@ -478,7 +478,7 @@ round192_39_57 (int q,
// Cstar = P384 >> Ex
// fstar = low Ex bits of P384
shift = Ex192m192[ind]; // in [1, 63] but have to consider three cases
- if (ind <= 18) { // if 0 <= ind <= 18
+ if (ind <= 18) { // if 0 <= ind <= 18
Cstar.w[2] = (P384.w[5] >> shift);
Cstar.w[1] = (P384.w[5] << (64 - shift)) | (P384.w[4] >> shift);
Cstar.w[0] = (P384.w[4] << (64 - shift)) | (P384.w[3] >> shift);
@@ -676,7 +676,7 @@ round256_58_76 (int q,
int ind;
// Note:
- // In round256_58_76() positive numbers with 58 <= q <= 76 will be
+ // In round256_58_76() positive numbers with 58 <= q <= 76 will be
// rounded to nearest only for 24 <= x <= 61:
// x = 42 or x = 43 or x = 24 or x = 25 when q = 58
// x = 43 or x = 44 or x = 25 or x = 26 when q = 59
@@ -695,7 +695,7 @@ round256_58_76 (int q,
// (because the largest value is 9999999999999999999999999999999999999999
// 999999999999999999999999999999999999 + 500000000000000000000000000
// 000000000000000000000000000000000000000000000000 =
- // 0x1736ca15d27a56cae15cf0e7b403d1f2bd6ebb0a50dc83ffffffffffffffffff,
+ // 0x1736ca15d27a56cae15cf0e7b403d1f2bd6ebb0a50dc83ffffffffffffffffff,
// which fits in 253 bits)
ind = x - 1; // 0 <= ind <= 74
if (ind <= 18) { // if 0 <= ind <= 18
@@ -790,7 +790,7 @@ round256_58_76 (int q,
// Cstar = P512 >> Ex
// fstar = low Ex bits of P512
shift = Ex256m256[ind]; // in [0, 63] but have to consider four cases
- if (ind <= 18) { // if 0 <= ind <= 18
+ if (ind <= 18) { // if 0 <= ind <= 18
Cstar.w[3] = (P512.w[7] >> shift);
Cstar.w[2] = (P512.w[7] << (64 - shift)) | (P512.w[6] >> shift);
Cstar.w[1] = (P512.w[6] << (64 - shift)) | (P512.w[5] >> shift);
diff --git a/libgcc/config/libbid/bid_sqrt_macros.h b/libgcc/config/libbid/bid_sqrt_macros.h
index 496ce6f..4d1a70c 100644
--- a/libgcc/config/libbid/bid_sqrt_macros.h
+++ b/libgcc/config/libbid/bid_sqrt_macros.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -282,7 +282,7 @@ long_sqrt128 (UINT128 * pCS, UINT256 C256) {
if (ES.w[0])
ES.w[1]--;
- // A*RS*eps
+ // A*RS*eps
__mul_128x128_to_256 (AE, ES, ARS1);
__add_carry_out (S.w[0], CY, ARS00.w[0], AE.w[0]);
@@ -290,7 +290,7 @@ long_sqrt128 (UINT128 * pCS, UINT256 C256) {
__add_carry_in_out (S.w[2], CY, ARS00.w[2], AE.w[2], CY);
S.w[3] = ARS00.w[3] + AE.w[3] + CY;
} else {
- // A*RS*eps
+ // A*RS*eps
__mul_128x128_to_256 (AE, ES, ARS1);
__sub_borrow_out (S.w[0], CY, ARS00.w[0], AE.w[0]);
diff --git a/libgcc/config/libgcc-glibc.ver b/libgcc/config/libgcc-glibc.ver
index 13f75a1..59c42e1 100644
--- a/libgcc/config/libgcc-glibc.ver
+++ b/libgcc/config/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2024 Free Software Foundation, Inc.
+# Copyright (C) 2000-2025 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 93eff03..7779e34 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 42980dd..e3bde8a 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 e206357..2f6bcde 100644
--- a/libgcc/config/lm32/_divsi3.c
+++ b/libgcc/config/lm32/_divsi3.c
@@ -1,22 +1,22 @@
/* _divsi3 for Lattice Mico32.
- Contributed by Jon Beniston <jon@beniston.com>
-
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Contributed by Jon Beniston <jon@beniston.com>
+
+ Copyright (C) 2009-2025 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
diff --git a/libgcc/config/lm32/_lshrsi3.S b/libgcc/config/lm32/_lshrsi3.S
index 34256f1..7c520e9 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 0e40abe..4cc7089 100644
--- a/libgcc/config/lm32/_modsi3.c
+++ b/libgcc/config/lm32/_modsi3.c
@@ -1,22 +1,22 @@
/* _modsi3 for Lattice Mico32.
- Contributed by Jon Beniston <jon@beniston.com>
-
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Contributed by Jon Beniston <jon@beniston.com>
+
+ Copyright (C) 2009-2025 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
diff --git a/libgcc/config/lm32/_mulsi3.c b/libgcc/config/lm32/_mulsi3.c
index 62fe891..20c49c1 100644
--- a/libgcc/config/lm32/_mulsi3.c
+++ b/libgcc/config/lm32/_mulsi3.c
@@ -1,22 +1,22 @@
/* _mulsi3 for Lattice Mico32.
- Contributed by Jon Beniston <jon@beniston.com>
-
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Contributed by Jon Beniston <jon@beniston.com>
+
+ Copyright (C) 2009-2025 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
diff --git a/libgcc/config/lm32/_udivmodsi4.c b/libgcc/config/lm32/_udivmodsi4.c
index b83dfe7..3319650 100644
--- a/libgcc/config/lm32/_udivmodsi4.c
+++ b/libgcc/config/lm32/_udivmodsi4.c
@@ -1,22 +1,22 @@
/* _udivmodsi4 for Lattice Mico32.
- Contributed by Jon Beniston <jon@beniston.com>
-
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Contributed by Jon Beniston <jon@beniston.com>
+
+ Copyright (C) 2009-2025 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
diff --git a/libgcc/config/lm32/_udivsi3.c b/libgcc/config/lm32/_udivsi3.c
index 0b28fa6..561e521 100644
--- a/libgcc/config/lm32/_udivsi3.c
+++ b/libgcc/config/lm32/_udivsi3.c
@@ -1,22 +1,22 @@
/* _udivsi3 for Lattice Mico32.
- Contributed by Jon Beniston <jon@beniston.com>
-
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Contributed by Jon Beniston <jon@beniston.com>
+
+ Copyright (C) 2009-2025 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
diff --git a/libgcc/config/lm32/_umodsi3.c b/libgcc/config/lm32/_umodsi3.c
index b254da2..c133897 100644
--- a/libgcc/config/lm32/_umodsi3.c
+++ b/libgcc/config/lm32/_umodsi3.c
@@ -1,22 +1,22 @@
/* _umodsi3 for Lattice Mico32.
- Contributed by Jon Beniston <jon@beniston.com>
-
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Contributed by Jon Beniston <jon@beniston.com>
+
+ Copyright (C) 2009-2025 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
diff --git a/libgcc/config/lm32/crti.S b/libgcc/config/lm32/crti.S
index 07c55e9..0089d06 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 14a7ac3..a4b1e10 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 55e1d95..bad4860 100644
--- a/libgcc/config/lm32/libgcc_lm32.h
+++ b/libgcc/config/lm32/libgcc_lm32.h
@@ -1,29 +1,29 @@
/* Integer arithmetic support for Lattice Mico32.
- Contributed by Jon Beniston <jon@beniston.com>
-
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Contributed by Jon Beniston <jon@beniston.com>
+
+ Copyright (C) 2009-2025 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/>. */
#ifndef LIBGCC_LM32_H
-#define LIBGCC_LM32_H
+#define LIBGCC_LM32_H
/* Types. */
diff --git a/libgcc/config/loongarch/crtfastmath.c b/libgcc/config/loongarch/crtfastmath.c
index bcea6c3..fa2a662 100644
--- a/libgcc/config/loongarch/crtfastmath.c
+++ b/libgcc/config/loongarch/crtfastmath.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
Contributed by Loongson Ltd.
Based on MIPS target for GNU compiler.
diff --git a/libgcc/config/loongarch/linux-unwind.h b/libgcc/config/loongarch/linux-unwind.h
index 4d31fbb..2a45ffc 100644
--- a/libgcc/config/loongarch/linux-unwind.h
+++ b/libgcc/config/loongarch/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for LoongArch Linux.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/loongarch/sfp-machine.h b/libgcc/config/loongarch/sfp-machine.h
index 381eb1f..ea0a62a 100644
--- a/libgcc/config/loongarch/sfp-machine.h
+++ b/libgcc/config/loongarch/sfp-machine.h
@@ -1,5 +1,5 @@
/* softfp machine description for LoongArch.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/loongarch/t-crtstuff b/libgcc/config/loongarch/t-crtstuff
index b8c36eb..2a2489b 100644
--- a/libgcc/config/loongarch/t-crtstuff
+++ b/libgcc/config/loongarch/t-crtstuff
@@ -3,3 +3,9 @@
# to .eh_frame data from crtbeginT.o instead of the user-defined object
# during static linking.
CRTSTUFF_T_CFLAGS += -fno-omit-frame-pointer -fno-asynchronous-unwind-tables
+
+# As shown in the test case PR118844, when using lld for linking,
+# it fails due to B26 in crtbeginS.o causing the link to exceed the range.
+# Therefore, the issue was resolved by adding the compilation option
+# "-mcmodel=extreme" when compiling crtbeginS.o.
+CRTSTUFF_T_CFLAGS_S += -mcmodel=extreme
diff --git a/libgcc/config/m32c/lib1funcs.S b/libgcc/config/m32c/lib1funcs.S
index 4c9fa21..b855dea 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 5ab0f13..8e95c40 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 125c838..93433ee 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 77d5af5..2c97859 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -50,7 +50,7 @@ static func_ptr __DTOR_LIST__[1]
= { (func_ptr) (-1) };
/* Run all the global destructors on exit from the program. */
-
+
/* Some systems place the number of pointers in the first word of the
table. On SVR4 however, that word is -1. In all cases, the table is
null-terminated. On SVR4, we start from the beginning of the list and
diff --git a/libgcc/config/m68k/crti.S b/libgcc/config/m68k/crti.S
index 2897444..a054a19 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 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 f88b915..f5414cb 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 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/fpgnulib.c b/libgcc/config/m68k/fpgnulib.c
index 04f6299..a7d4258 100644
--- a/libgcc/config/m68k/fpgnulib.c
+++ b/libgcc/config/m68k/fpgnulib.c
@@ -79,7 +79,7 @@
#define SIGNX(fp) ((fp.l.upper) & SIGNBIT)
#define MANTXMASK 0x7FFFFFFFL /* mask of upper part */
-union double_long
+union double_long
{
double d;
struct {
@@ -269,7 +269,7 @@ __extendsfdf2 (float a1)
dl.l.upper |= exp << 20;
dl.l.upper |= mant >> 3;
dl.l.lower = mant << 29;
-
+
return dl.d;
}
@@ -363,13 +363,13 @@ __fixdfsi (double a1)
dl1.d = a1;
- if (!dl1.l.upper && !dl1.l.lower)
+ if (!dl1.l.upper && !dl1.l.lower)
return 0;
exp = EXPD (dl1) - EXCESSD - 31;
l = MANTD (dl1);
- if (exp > 0)
+ if (exp > 0)
{
/* Return largest integer. */
return SIGND (dl1) ? 0x80000000L : 0x7fffffffL;
@@ -449,34 +449,37 @@ __extenddfxf2 (double d)
}
exp = EXPD (dl) - EXCESSD + EXCESSX;
- /* Check for underflow and denormals. */
- if (exp < 0)
+
+ dl.l.upper &= MANTDMASK;
+
+ /* Recover from a denorm. */
+ if (exp == -EXCESSD + EXCESSX)
{
- if (exp < -53)
+ exp++;
+ while ((dl.l.upper & HIDDEND) == 0)
{
- ldl.l.middle = 0;
- ldl.l.lower = 0;
- }
- else if (exp < -30)
- {
- ldl.l.lower = (ldl.l.middle & MANTXMASK) >> ((1 - exp) - 32);
- ldl.l.middle &= ~MANTXMASK;
- }
- else
- {
- ldl.l.lower >>= 1 - exp;
- ldl.l.lower |= (ldl.l.middle & MANTXMASK) << (32 - (1 - exp));
- ldl.l.middle = (ldl.l.middle & ~MANTXMASK) | (ldl.l.middle & MANTXMASK >> (1 - exp));
+ exp--;
+ dl.l.upper = (dl.l.upper << 1) | (dl.l.lower >> 31);
+ dl.l.lower = dl.l.lower << 1;
}
- exp = 0;
}
+
/* Handle inf and NaN */
- if (exp == EXPDMASK - EXCESSD + EXCESSX)
- exp = EXPXMASK;
+ else if (exp == EXPDMASK - EXCESSD + EXCESSX)
+ {
+ exp = EXPXMASK;
+ /* Add hidden one bit for NaN */
+ if (dl.l.upper != 0 || dl.l.lower != 0)
+ dl.l.upper |= HIDDEND;
+ }
+ else
+ {
+ dl.l.upper |= HIDDEND;
+ }
+
ldl.l.upper |= exp << 16;
- ldl.l.middle = HIDDENX;
/* 31-20: # mantissa bits in ldl.l.middle - # mantissa bits in dl.l.upper */
- ldl.l.middle |= (dl.l.upper & MANTDMASK) << (31 - 20);
+ ldl.l.middle = dl.l.upper << (31 - 20);
/* 1+20: explicit-integer-bit + # mantissa bits in dl.l.upper */
ldl.l.middle |= dl.l.lower >> (1 + 20);
/* 32 - 21: # bits of dl.l.lower in ldl.l.middle */
@@ -508,21 +511,21 @@ __truncxfdf2 (long double ld)
/* Check for underflow and denormals. */
if (exp <= 0)
{
- if (exp < -53)
+ long shift = 1 - exp;
+ if (shift > 52)
{
ldl.l.middle = 0;
ldl.l.lower = 0;
}
- else if (exp < -30)
+ else if (shift >= 32)
{
- ldl.l.lower = (ldl.l.middle & MANTXMASK) >> ((1 - exp) - 32);
- ldl.l.middle &= ~MANTXMASK;
+ ldl.l.lower = (ldl.l.middle) >> (shift - 32);
+ ldl.l.middle = 0;
}
else
{
- ldl.l.lower >>= 1 - exp;
- ldl.l.lower |= (ldl.l.middle & MANTXMASK) << (32 - (1 - exp));
- ldl.l.middle = (ldl.l.middle & ~MANTXMASK) | (ldl.l.middle & MANTXMASK >> (1 - exp));
+ ldl.l.lower = (ldl.l.middle << (32 - shift)) | (ldl.l.lower >> shift);
+ ldl.l.middle = ldl.l.middle >> shift;
}
exp = 0;
}
@@ -585,7 +588,6 @@ __fixxfsi (long double a)
{
union long_double_long ldl;
long exp;
- long l;
ldl.ld = a;
@@ -593,28 +595,20 @@ __fixxfsi (long double a)
if (exp == 0 && ldl.l.middle == 0 && ldl.l.lower == 0)
return 0;
- exp = exp - EXCESSX - 63;
+ exp = exp - EXCESSX - 32;
- if (exp > 0)
+ if (exp >= 0)
{
/* Return largest integer. */
return SIGNX (ldl) ? 0x80000000L : 0x7fffffffL;
}
- if (exp <= -64)
+ if (exp <= -32)
return 0;
- if (exp <= -32)
- {
- ldl.l.lower = ldl.l.middle >> (-exp - 32);
- }
- else if (exp < 0)
- {
- ldl.l.lower = ldl.l.lower >> -exp;
- ldl.l.lower |= ldl.l.middle << (32 + exp);
- }
+ ldl.l.middle >>= -exp;
- return SIGNX (ldl) ? -ldl.l.lower : ldl.l.lower;
+ return SIGNX (ldl) ? -ldl.l.middle : ldl.l.middle;
}
/* The remaining provide crude math support by working in double precision. */
diff --git a/libgcc/config/m68k/lb1sf68.S b/libgcc/config/m68k/lb1sf68.S
index 22f2772..bcbcaf3 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -635,7 +635,7 @@ SYM (__modsi3):
.globl SYM (_fpCCR)
.globl $_exception_handler
-QUIET_NaN = 0xffffffff
+QUIET_NaN = 0x7fffffff
D_MAX_EXP = 0x07ff
D_BIAS = 1022
@@ -691,7 +691,7 @@ Ld$den:
Ld$infty:
Ld$overflow:
-| Return a properly signed INFINITY and set the exception flags
+| Return a properly signed INFINITY and set the exception flags
movel IMM (0x7ff00000),d0
movel IMM (0),d1
orl d7,d0
@@ -700,9 +700,10 @@ Ld$overflow:
PICJUMP $_exception_handler
Ld$underflow:
-| Return 0 and set the exception flags
+| Return a properly signed 0 and set the exception flags
movel IMM (0),d0
movel d0,d1
+ orl d7,d0
movew IMM (INEXACT_RESULT+UNDERFLOW),d7
moveq IMM (DOUBLE_FLOAT),d6
PICJUMP $_exception_handler
@@ -711,6 +712,7 @@ Ld$inop:
| Return a quiet NaN and set the exception flags
movel IMM (QUIET_NaN),d0
movel d0,d1
+ bset IMM (31),d1
movew IMM (INEXACT_RESULT+INVALID_OPERATION),d7
moveq IMM (DOUBLE_FLOAT),d6
PICJUMP $_exception_handler
@@ -2082,6 +2084,7 @@ Ldivdf$b$nf:
| If d2 == 0x7ff00000 we have to check d3.
tstl d3 |
bne Ld$inop | if d3 <> 0, b is NaN
+ movel a0,d7 | put a's sign
bra Ld$underflow | else b is +/-INFINITY, so signal underflow
Ldivdf$a$nf:
@@ -2187,6 +2190,7 @@ Lround$exit:
#endif
beq 2f | if not loop back
bra 1b |
+ movel a0,d7 | get back sign bit into d7
bra Ld$underflow | safety check, shouldn't execute '
2: orl d6,d2 | this is a trick so we don't lose '
orl d7,d3 | the bits which were flushed right
@@ -2549,7 +2553,7 @@ Lround$to$minus:
.globl SYM (_fpCCR)
.globl $_exception_handler
-QUIET_NaN = 0xffffffff
+QUIET_NaN = 0x7fffffff
SIGNL_NaN = 0x7f800001
INFINITY = 0x7f800000
@@ -2607,7 +2611,7 @@ Lf$den:
Lf$infty:
Lf$overflow:
-| Return a properly signed INFINITY and set the exception flags
+| Return a properly signed INFINITY and set the exception flags
movel IMM (INFINITY),d0
orl d7,d0
moveq IMM (INEXACT_RESULT+OVERFLOW),d7
@@ -2615,8 +2619,9 @@ Lf$overflow:
PICJUMP $_exception_handler
Lf$underflow:
-| Return 0 and set the exception flags
+| Return a properly signed 0 and set the exception flags
moveq IMM (0),d0
+ orl d7,d0
moveq IMM (INEXACT_RESULT+UNDERFLOW),d7
moveq IMM (SINGLE_FLOAT),d6
PICJUMP $_exception_handler
diff --git a/libgcc/config/m68k/linux-atomic.c b/libgcc/config/m68k/linux-atomic.c
index 9b41bd2..4b38313 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 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 7c9b879..8eb96ab 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/mcore/crti.S b/libgcc/config/mcore/crti.S
index d067525..85e97bd 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 1992-2025 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 82f3fac..fed745a 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 1992-2025 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 5519b7f..b4bd365 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 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 94d13fd..db64f7a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 e63f963..ab06f75 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 b405e9a..e3f4f8d 100644
--- a/libgcc/config/microblaze/divsi3.S
+++ b/libgcc/config/microblaze/divsi3.S
@@ -1,6 +1,6 @@
###################################-
#
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 2caf4bc..82c5fce 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-2024 Free Software Foundation, Inc.
+
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by Michael Eager <eager@eagercon.com>.
@@ -23,40 +23,40 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
-
+
unsigned char _divsi3_table[] =
{
- 0, 0/1, 0/2, 0/3, 0/4, 0/5, 0/6, 0/7,
+ 0, 0/1, 0/2, 0/3, 0/4, 0/5, 0/6, 0/7,
0/8, 0/9, 0/10, 0/11, 0/12, 0/13, 0/14, 0/15,
- 0, 1/1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7,
+ 0, 1/1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7,
1/8, 1/9, 1/10, 1/11, 1/12, 1/13, 1/14, 1/15,
- 0, 2/1, 2/2, 2/3, 2/4, 2/5, 2/6, 2/7,
+ 0, 2/1, 2/2, 2/3, 2/4, 2/5, 2/6, 2/7,
2/8, 2/9, 2/10, 2/11, 2/12, 2/13, 2/14, 2/15,
- 0, 3/1, 3/2, 3/3, 3/4, 3/5, 3/6, 3/7,
+ 0, 3/1, 3/2, 3/3, 3/4, 3/5, 3/6, 3/7,
3/8, 3/9, 3/10, 3/11, 3/12, 3/13, 3/14, 3/15,
- 0, 4/1, 4/2, 4/3, 4/4, 4/5, 4/6, 4/7,
+ 0, 4/1, 4/2, 4/3, 4/4, 4/5, 4/6, 4/7,
4/8, 4/9, 4/10, 4/11, 4/12, 4/13, 4/14, 4/15,
- 0, 5/1, 5/2, 5/3, 5/4, 5/5, 5/6, 5/7,
+ 0, 5/1, 5/2, 5/3, 5/4, 5/5, 5/6, 5/7,
5/8, 5/9, 5/10, 5/11, 5/12, 5/13, 5/14, 5/15,
- 0, 6/1, 6/2, 6/3, 6/4, 6/5, 6/6, 6/7,
+ 0, 6/1, 6/2, 6/3, 6/4, 6/5, 6/6, 6/7,
6/8, 6/9, 6/10, 6/11, 6/12, 6/13, 6/14, 6/15,
- 0, 7/1, 7/2, 7/3, 7/4, 7/5, 7/6, 7/7,
+ 0, 7/1, 7/2, 7/3, 7/4, 7/5, 7/6, 7/7,
7/8, 7/9, 7/10, 7/11, 7/12, 7/13, 7/14, 7/15,
- 0, 8/1, 8/2, 8/3, 8/4, 8/5, 8/6, 8/7,
+ 0, 8/1, 8/2, 8/3, 8/4, 8/5, 8/6, 8/7,
8/8, 8/9, 8/10, 8/11, 8/12, 8/13, 8/14, 8/15,
- 0, 9/1, 9/2, 9/3, 9/4, 9/5, 9/6, 9/7,
+ 0, 9/1, 9/2, 9/3, 9/4, 9/5, 9/6, 9/7,
9/8, 9/9, 9/10, 9/11, 9/12, 9/13, 9/14, 9/15,
- 0, 10/1, 10/2, 10/3, 10/4, 10/5, 10/6, 10/7,
+ 0, 10/1, 10/2, 10/3, 10/4, 10/5, 10/6, 10/7,
10/8, 10/9, 10/10, 10/11, 10/12, 10/13, 10/14, 10/15,
- 0, 11/1, 11/2, 11/3, 11/4, 11/5, 11/6, 11/7,
+ 0, 11/1, 11/2, 11/3, 11/4, 11/5, 11/6, 11/7,
11/8, 11/9, 11/10, 11/11, 11/12, 11/13, 11/14, 11/15,
- 0, 12/1, 12/2, 12/3, 12/4, 12/5, 12/6, 12/7,
+ 0, 12/1, 12/2, 12/3, 12/4, 12/5, 12/6, 12/7,
12/8, 12/9, 12/10, 12/11, 12/12, 12/13, 12/14, 12/15,
- 0, 13/1, 13/2, 13/3, 13/4, 13/5, 13/6, 13/7,
+ 0, 13/1, 13/2, 13/3, 13/4, 13/5, 13/6, 13/7,
13/8, 13/9, 13/10, 13/11, 13/12, 13/13, 13/14, 13/15,
- 0, 14/1, 14/2, 14/3, 14/4, 14/5, 14/6, 14/7,
+ 0, 14/1, 14/2, 14/3, 14/4, 14/5, 14/6, 14/7,
14/8, 14/9, 14/10, 14/11, 14/12, 14/13, 14/14, 14/15,
- 0, 15/1, 15/2, 15/3, 15/4, 15/5, 15/6, 15/7,
+ 0, 15/1, 15/2, 15/3, 15/4, 15/5, 15/6, 15/7,
15/8, 15/9, 15/10, 15/11, 15/12, 15/13, 15/14, 15/15,
};
diff --git a/libgcc/config/microblaze/moddi3.S b/libgcc/config/microblaze/moddi3.S
index 0d9909d..3af3659 100644
--- a/libgcc/config/microblaze/moddi3.S
+++ b/libgcc/config/microblaze/moddi3.S
@@ -1,6 +1,6 @@
###################################
#
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 08bb8cf..3bc75e5 100644
--- a/libgcc/config/microblaze/modsi3.S
+++ b/libgcc/config/microblaze/modsi3.S
@@ -1,6 +1,6 @@
###################################
#
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 b09a0ff..49578fe 100644
--- a/libgcc/config/microblaze/muldi3_hard.S
+++ b/libgcc/config/microblaze/muldi3_hard.S
@@ -1,6 +1,6 @@
###################################-
#
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 92dc820..3f3af03 100644
--- a/libgcc/config/microblaze/mulsi3.S
+++ b/libgcc/config/microblaze/mulsi3.S
@@ -1,6 +1,6 @@
###################################-*-asm*-
#
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 e4e831c..c9d7cdf 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 0ad1ef9..e7e36f0 100644
--- a/libgcc/config/microblaze/udivsi3.S
+++ b/libgcc/config/microblaze/udivsi3.S
@@ -1,6 +1,6 @@
###################################-
#
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 6cb4733..356e31f 100644
--- a/libgcc/config/microblaze/umodsi3.S
+++ b/libgcc/config/microblaze/umodsi3.S
@@ -1,6 +1,6 @@
###################################
#
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
#
# Contributed by Michael Eager <eager@eagercon.com>.
#
diff --git a/libgcc/config/i386/t-mingw-mcfgthread b/libgcc/config/mingw/t-mingw-mcfgthread
index c5b817f..c5b817f 100644
--- a/libgcc/config/i386/t-mingw-mcfgthread
+++ b/libgcc/config/mingw/t-mingw-mcfgthread
diff --git a/libgcc/config/mips/crtfastmath.c b/libgcc/config/mips/crtfastmath.c
index ce7e09f..670831a 100644
--- a/libgcc/config/mips/crtfastmath.c
+++ b/libgcc/config/mips/crtfastmath.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 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 f7152a4..5694f2e 100644
--- a/libgcc/config/mips/crti.S
+++ b/libgcc/config/mips/crti.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 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 c46ca7e6..99814f0 100644
--- a/libgcc/config/mips/crtn.S
+++ b/libgcc/config/mips/crtn.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 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 12ae82b..93c1dc7 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
Contributed by Nigel Stephens <nigel@mips.com>
This file is part of GCC.
diff --git a/libgcc/config/mips/lib1funcs.S b/libgcc/config/mips/lib1funcs.S
index fa8114b..128d496 100644
--- a/libgcc/config/mips/lib1funcs.S
+++ b/libgcc/config/mips/lib1funcs.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2023-2025 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
@@ -19,7 +19,7 @@ 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 "mips16.S"
+#include "mips16.S"
#ifdef L_speculation_barrier
diff --git a/libgcc/config/mips/lib2funcs.c b/libgcc/config/mips/lib2funcs.c
index a234817..ced72de 100644
--- a/libgcc/config/mips/lib2funcs.c
+++ b/libgcc/config/mips/lib2funcs.c
@@ -1,5 +1,5 @@
/* libgcc routines for MIPS
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 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-mips.ver b/libgcc/config/mips/libgcc-mips.ver
index 55e70ac..45d8906 100644
--- a/libgcc/config/mips/libgcc-mips.ver
+++ b/libgcc/config/mips/libgcc-mips.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/mips/libgcc-mips16.ver b/libgcc/config/mips/libgcc-mips16.ver
index 8b9bb71..dc19bb2 100644
--- a/libgcc/config/mips/libgcc-mips16.ver
+++ b/libgcc/config/mips/libgcc-mips16.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 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 2aa7a60..cfd2671 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 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 46e3509..fbc7858 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 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 f0c3b71..34c72a2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 0ce0ca0..b91a18d 100644
--- a/libgcc/config/mips/t-mips16
+++ b/libgcc/config/mips/t-mips16
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 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 11debd2..f0bde26 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 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 4189ca5..d6c05cf 100644
--- a/libgcc/config/mmix/crti.S
+++ b/libgcc/config/mmix/crti.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 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 5f6ea13..0043692 100644
--- a/libgcc/config/mmix/crtn.S
+++ b/libgcc/config/mmix/crtn.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 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 6106326..476ee64 100644
--- a/libgcc/config/moxie/crti.S
+++ b/libgcc/config/moxie/crti.S
@@ -1,6 +1,6 @@
# crti.S for moxie
#
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 e00b49b..dd7ed0c 100644
--- a/libgcc/config/moxie/crtn.S
+++ b/libgcc/config/moxie/crtn.S
@@ -1,6 +1,6 @@
# crtn.S for moxie
#
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 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 800e0c2..66f564d 100644
--- a/libgcc/config/msp430/cmpsi2.S
+++ b/libgcc/config/msp430/cmpsi2.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+; Copyright (C) 2012-2025 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 0d2e92c..6b1532f 100644
--- a/libgcc/config/msp430/epilogue.S
+++ b/libgcc/config/msp430/epilogue.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+; Copyright (C) 2012-2025 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 3c45d9e..dfd8722 100644
--- a/libgcc/config/msp430/lib2bitcountHI.c
+++ b/libgcc/config/msp430/lib2bitcountHI.c
@@ -1,5 +1,5 @@
/* libgcc routines for MSP430
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 b733484..3e115c2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 186143d..1a8a5d5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 509b70b..70be3b6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 280a7dd..6a0cd93 100644
--- a/libgcc/config/msp430/lib2hw_mul.S
+++ b/libgcc/config/msp430/lib2hw_mul.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2014-2024 Free Software Foundation, Inc.
+; Copyright (C) 2014-2025 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/lib2mul.c b/libgcc/config/msp430/lib2mul.c
index 0c0887b..999465a 100644
--- a/libgcc/config/msp430/lib2mul.c
+++ b/libgcc/config/msp430/lib2mul.c
@@ -1,5 +1,5 @@
/* libgcc routines for MSP430
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/msp430/lib2shift.c b/libgcc/config/msp430/lib2shift.c
index deba793..f691be9 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.
diff --git a/libgcc/config/msp430/mpy.c b/libgcc/config/msp430/mpy.c
index 3842d86..6cb30c8 100644
--- a/libgcc/config/msp430/mpy.c
+++ b/libgcc/config/msp430/mpy.c
@@ -20,7 +20,7 @@ __mulhi3 (int x, int y)
rv += x;
x <<= 1;
y >>= 1;
- }
+ }
return neg ? - rv : rv;
}
diff --git a/libgcc/config/msp430/msp430-divmod.h b/libgcc/config/msp430/msp430-divmod.h
index 15d73ce..90e26ce 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 434697d..dcabc28 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 b93fe17..619d12e 100644
--- a/libgcc/config/msp430/slli.S
+++ b/libgcc/config/msp430/slli.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+; Copyright (C) 2012-2025 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/srai.S b/libgcc/config/msp430/srai.S
index 8424479..1fcf22f 100644
--- a/libgcc/config/msp430/srai.S
+++ b/libgcc/config/msp430/srai.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+; Copyright (C) 2012-2025 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/srli.S b/libgcc/config/msp430/srli.S
index 6439449..4e975cc 100644
--- a/libgcc/config/msp430/srli.S
+++ b/libgcc/config/msp430/srli.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+; Copyright (C) 2012-2025 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/t-msp430 b/libgcc/config/msp430/t-msp430
index eed30e8..de386ed 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 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 8d67fb7..38a8f2a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 b09f17f..278f681 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/adj_intr_lvl.inc b/libgcc/config/nds32/isr-library/adj_intr_lvl.inc
index faff3f6..58c903f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/excp_isr.S b/libgcc/config/nds32/isr-library/excp_isr.S
index 2721394..62ac8c1 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/excp_isr_4b.S b/libgcc/config/nds32/isr-library/excp_isr_4b.S
index e59dd0d..397ad28 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 4c88edb..a6decf0 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/intr_isr_4b.S
index 55fb54e..8f04ccd 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 3e0452b..06edd81 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 e1275ba6..57c54b2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 f8da4b6..be15e28 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 bfff11e..3b444a8 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 575cd38..7d29422 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 5dee4d6..f90081a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 be7c59f..e67c46c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 8060e0cd..517cc38 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 8ab0800..deb29d6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 e7a6133..c199edb 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 82f559a..2563fad 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 000fe9b..b57fe88 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 82360bb..231e401 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 c7eefc1..995b047 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 4b56b5e..57fa6e8 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 0ef1471..9ad2785 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a14ada7..ee0c746 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a03bf01..4398e2b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 3f003ab..c342119 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 8fb0fa8..600cbd3 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 0ca4c25..dcbf650 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 876b621..0b8b61d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 ae85b7c..edcfe3b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 8011f84..6596cce 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 64d77c8..c16f03b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 8c15040..1910406 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 04c09e6..4aa38aa 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 9c1193e..a84d21c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 69b826a..ce6c6c4 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 6f0e97d..9ff3931 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 ed1447c..94ae56d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a0b8026..6aaa396 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a4e050e..8035d1e 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 276f869..2bb8c1b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 c390e5a..eefd17f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 fa5a6a3..defee75 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 6df9e69..0e0ad1a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 f16655d..327ed18 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 84f8bae..b6aefe0 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 9006268..d388837 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 1668508..6f5554b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 4a06864..9486e04 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 2c32f13..3b648c9 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 706e8de..27d2c44 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 5e0ea59..fc82890 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 0d32c58..59ca840 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 0c368cf..a9badfe 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 d8a5c40..fad537a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 56c9e3d..c0a6660 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 9d6756a..f9717fb 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 261d8fc..531af76 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 71ea4f0..4481915 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 535466a..aa01c3a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 186f97f..8e54443 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 3a713ac..bcd8303 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 0e320ed..a5ac386 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 8b0a1ee..846e7a6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 e4551a0..b2d8239 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 4285670..36f7b2c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 f61360e..c6002e3 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 50b599b..66e77e9 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 15e0e5a..860feaf 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 0090de6..d7de941 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 165c7b5..c03db3f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 40f3565..349d116 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 7b04285..e641c26 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 f701b02..8ea791c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 da20abf..a3bb4df 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 5745fe2..c5f51fd 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a812562..b16c0a0 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 116449d..4cab681 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 7f59057..58179b3 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 364e2d6..d2496b4 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 b126b0c..85c44b2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 9927d72..e12d875 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/reset_4b.S b/libgcc/config/nds32/isr-library/reset_4b.S
index e7d28ee..b7b8c68 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 ddf3520..7ac85f0 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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.inc b/libgcc/config/nds32/isr-library/restore_fpu_regs.inc
index a3a0e4d..4ac75b8 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 124cba4..39d11cc 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 59849f2..f90fee1 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 cc4d4b7..51d3c56 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 f4ad1cd..bd9f4f2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 8f05d44..b41371f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/restore_partial.inc b/libgcc/config/nds32/isr-library/restore_partial.inc
index e1c2bf8..ff086f5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/restore_usr_regs.inc b/libgcc/config/nds32/isr-library/restore_usr_regs.inc
index 998b0f8..f8eccb7 100644
--- a/libgcc/config/nds32/isr-library/restore_usr_regs.inc
+++ b/libgcc/config/nds32/isr-library/restore_usr_regs.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/save_all.inc b/libgcc/config/nds32/isr-library/save_all.inc
index 5cb1b83..f5f01e4 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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.inc b/libgcc/config/nds32/isr-library/save_fpu_regs.inc
index 50ad583..8deccf2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 c4bb646..41e7ebf 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a4c95f2..848d13c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 8135eee..c1fc252 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 dd0b45f..8eac8a4 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 b0944c7..03491ab 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/save_partial.inc b/libgcc/config/nds32/isr-library/save_partial.inc
index f79ade0..bc0eefb 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/save_usr_regs.inc b/libgcc/config/nds32/isr-library/save_usr_regs.inc
index 0259673..36a944e 100644
--- a/libgcc/config/nds32/isr-library/save_usr_regs.inc
+++ b/libgcc/config/nds32/isr-library/save_usr_regs.inc
@@ -1,5 +1,5 @@
/* c-isr library stuff of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid00.S b/libgcc/config/nds32/isr-library/vec_vid00.S
index bb5e201..da00b71 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/isr-library/vec_vid00_4b.S b/libgcc/config/nds32/isr-library/vec_vid00_4b.S
index fc43f53..ecd4178 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 bcf8877..6406572 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid01_4b.S
index 8b44e24..80e6725 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a09b903..8007538 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid02_4b.S
index db03ae0..b4ffd49 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 4d8236f..affbd5c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid03_4b.S
index 19adbb4..27875a5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 d5ba136..23e5e6b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid04_4b.S
index 94be864..9c92996 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 cd0b5ff..d416fde 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid05_4b.S
index 15ebb71..70acbdd 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 c5a2df4..e62fca8 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid06_4b.S
index 6d1ee6e..e800f2c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 e6c69aa..ea1f34b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid07_4b.S
index 506f8a2..659dd47 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a73234c..73670d7 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid08_4b.S
index 4fec3e5..5c00b6f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 77afb09..3d834a9 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid09_4b.S
index 50081a9..15842df 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 b8d97ec..f314082 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid10_4b.S
index 12a90c9..95aa663 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 e13a9f1..8530ced 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid11_4b.S
index 4ded29e..6cdf2ad 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 7dcbaae..8a82e9e 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid12_4b.S
index 54585ea..9c728ea 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 d5f54eb..0cabc54 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid13_4b.S
index 2fd5ba9..bcaee31 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 ba3c79a..3955acc 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid14_4b.S
index 183b7b4..a5bb728 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 98ad566..37e2930 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid15_4b.S
index 18543a9..ce5758f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 7443047..4f53a6e 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid16_4b.S
index 4ae45d7..e39ecdf 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 0deacdb..948e5ea 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid17_4b.S
index ed9cfba..eecbb42 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 62bb2f2..91f6a63 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid18_4b.S
index a36e776..c643d44 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 fa6b7e8..bb53c92 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid19_4b.S
index 316d53b..b0b52ac 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 07e984a..b52c960 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid20_4b.S
index 41afe59..aa51216 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 210ff5b..1d65bd3 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid21_4b.S
index 72b1aee..68b92f5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 31b81e0..c82caf7 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid22_4b.S
index ebeeba5..044154a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a6285e1..89c4012 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid23_4b.S
index 83ad622..016b73f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 910fc21..4f6a8ca 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid24_4b.S
index 4c9bd1b..a6a7c57 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 565cf6e..809b116 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid25_4b.S
index 9d84888..996e16c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 d8525e1..9d022a6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid26_4b.S
index 6883a1b..d5bc200 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 74c7a4a..607d674 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid27_4b.S
index 934e898..9c063bf 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 b0495f2..d1938b5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid28_4b.S
index 84e83af..8dbf9e5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 1f7ebb8..8f06dd2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid29_4b.S
index 30b9f68..a3ced7e 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 73046f4..2a24926 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid30_4b.S
index 20ea533..a928566 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 433a7aa..bffb546 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid31_4b.S
index edb0130d..c325e8b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 6c69264..3a04469 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid32_4b.S
index 9a14bf4..568e722 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a035a8a..2883490 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid33_4b.S
index 7bf1b57..49eae2a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 8f7b311..6865950 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid34_4b.S
index 8e9bb03..777303a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 6a995ad..a0fe13b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid35_4b.S
index 64bb0b5..d8c153c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 5ee1dd8..d8e5339 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid36_4b.S
index 39f376f..7187c30 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 f593c86..6697a90 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid37_4b.S
index c14ecc0..c6566dd 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 13124ac..d70d95e 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid38_4b.S
index 68d426b..4874d3d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 c477ea1..56d42bf 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid39_4b.S
index 81ab6ef..c267248 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 c281c29..12c4164 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid40_4b.S
index cd70a0a..17d5fd8 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 5a1b831..5b98ad0 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid41_4b.S
index 25daf4c..f760868 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 5785d70..ab681ba 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid42_4b.S
index 0695029..35bde5f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 f0f9818a..382dd91 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid43_4b.S
index ad64ee9..a259bce 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 18baf5e..e48174a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid44_4b.S
index 5248bbf..31a8241 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 ab69bf2..7845690 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid45_4b.S
index b4a4bd4..c155bb7 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 0c55d3b..e89e4f2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid46_4b.S
index 76e22f4..3bf8c8e 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 0b26ff6..3a5cbd6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid47_4b.S
index 50e7066..1a15578 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 0c0b5c4..b82f7ac 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid48_4b.S
index bb024b0..6c7b9b20 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 16b9bc5..633b2d7 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid49_4b.S
index 88ba462..dc3719a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 7ecb6d7..a7a859f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid50_4b.S
index 8c6b363..c870bd9 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 4c794e3..ce32f83 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid51_4b.S
index c852425..2f752e8 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 7156387..ccd0696 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid52_4b.S
index 6adadcb..ec8341d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a08be97..2adc787 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid53_4b.S
index b010e41..434b84c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a55d923..e6693f2 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid54_4b.S
index 091a850..7eb404a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a1e19fe..95d7142 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid55_4b.S
index c3e2720..49172e9 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 efd2082..3c4225b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid56_4b.S
index bb69f99..d2bad2c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 8551b4b..30a08a6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid57_4b.S
index f5ef34e..6057b2f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 4cf36b6..18e7752 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid58_4b.S
index dd63d7c..2f1216d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 6b0a2ad..b6dc650 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid59_4b.S
index 7801d07..fa29a06 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 6611137..0b8f880 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid60_4b.S
index d01aaf4..6eb2f5a1 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 edb4556..e004b9b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid61_4b.S
index 085d744..09821f9 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 b3250bb..6960553 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid62_4b.S
index cb5fd18..3621e87 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 f1b8823..f7ca5cb 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid63_4b.S
index 70a2408..dbb727b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 55f2002..d5508d1 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid64_4b.S
index 3d23c49..fada173 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 641309f..fabd433 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid65_4b.S
index b6c58cd..cde1b2f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 a7907c6..b772137 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid66_4b.S
index 3595371..f5c67d5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 8f08766..43b1320 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid67_4b.S
index 6f77184..933fe28 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 b37b7af..2a3fb44 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid68_4b.S
index 2db81ff..8677f35 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 80e8f66..d0865a1 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid69_4b.S
index 3f52b21..18db443 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 6e974a9..ff72c7d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid70_4b.S
index d4ca6ec..7e13835 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 33c1587..b627f1d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid71_4b.S
index 6a539a8d..ed12e52 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 820dc29..896d312 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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_4b.S b/libgcc/config/nds32/isr-library/vec_vid72_4b.S
index c411669..5cf7d4d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 21b77c7..88d53d1 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 830038c..877cae3 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 482f9d6..ddb9dda 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 2ff6985..c1f408e 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 0c14f36..945b363 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 ef869e0..98e16c1 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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
@@ -208,8 +208,6 @@ __sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
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)
{
diff --git a/libgcc/config/nds32/linux-unwind.h b/libgcc/config/nds32/linux-unwind.h
index 5cf9312..6f16dbd 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/libgcc/config/nds32/sfp-machine.h b/libgcc/config/nds32/sfp-machine.h
index 6dbbb55..61f66e5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 1a7f699..70c0d84 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 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
index 01215a0..c12882c 100644
--- a/libgcc/config/nds32/t-nds32-glibc
+++ b/libgcc/config/nds32/t-nds32-glibc
@@ -1,5 +1,5 @@
# Rules of glibc library makefile of Andes NDS32 cpu for GNU compiler
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# Contributed by Andes Technology Corporation.
#
# This file is part of GCC.
diff --git a/libgcc/config/nds32/t-nds32-isr b/libgcc/config/nds32/t-nds32-isr
index 3cb34f4..a35b0ff 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# Contributed by Andes Technology Corporation.
#
# This file is part of GCC.
diff --git a/libgcc/config/nds32/t-nds32-mculib b/libgcc/config/nds32/t-nds32-mculib
index f5db4d2..74443d0 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 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 7addbe5..fd10e0c 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 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
deleted file mode 100644
index 01a156d..0000000
--- a/libgcc/config/nios2/crti.S
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
- Contributed by Jonah Graham (jgraham@altera.com).
- Contributed by 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/>. */
-
-
-/* This file just make a stack frame for the contents of the .fini and
- .init sections. Users may put any desired instructions in those
- sections.
-
- While technically any code can be put in the init and fini sections
- most stuff will not work other than stuff which obeys the call frame
- and ABI. All the call-preserved registers are saved, the call clobbered
- registers should have been saved by the code calling init and fini.
-
- See crtstuff.c for an example of code that inserts itself in the init
- and fini sections.
-
- See crt0.s for the code that calls init and fini. */
-
- .section ".init"
- .align 2
- .global _init
-_init:
- addi sp, sp, -48
- stw ra, 44(sp)
- stw r23, 40(sp)
- stw r22, 36(sp)
- stw r21, 32(sp)
- stw r20, 28(sp)
- stw r19, 24(sp)
- stw r18, 20(sp)
- stw r17, 16(sp)
- stw r16, 12(sp)
- stw fp, 8(sp)
- addi fp, sp, 8
-#ifdef linux
- nextpc r22
-1: movhi r2, %hiadj(_gp_got - 1b)
- addi r2, r2, %lo(_gp_got - 1b)
- add r22, r22, r2
-#endif
-
-
- .section ".fini"
- .align 2
- .global _fini
-_fini:
- addi sp, sp, -48
- stw ra, 44(sp)
- stw r23, 40(sp)
- stw r22, 36(sp)
- stw r21, 32(sp)
- stw r20, 28(sp)
- stw r19, 24(sp)
- stw r18, 20(sp)
- stw r17, 16(sp)
- stw r16, 12(sp)
- stw fp, 8(sp)
- addi fp, sp, 8
-#ifdef linux
- nextpc r22
-1: movhi r2, %hiadj(_gp_got - 1b)
- addi r2, r2, %lo(_gp_got - 1b)
- add r22, r22, r2
-#endif
-
diff --git a/libgcc/config/nios2/crtn.S b/libgcc/config/nios2/crtn.S
deleted file mode 100644
index cb79dde..0000000
--- a/libgcc/config/nios2/crtn.S
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
- Contributed by Jonah Graham (jgraham@altera.com).
- Contributed by 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/>. */
-
-
-/* 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. */
-
- .section ".init"
- ldw ra, 44(sp)
- ldw r23, 40(sp)
- ldw r22, 36(sp)
- ldw r21, 32(sp)
- ldw r20, 28(sp)
- ldw r19, 24(sp)
- ldw r18, 20(sp)
- ldw r17, 16(sp)
- ldw r16, 12(sp)
- ldw fp, 8(sp)
- addi sp, sp, 48
- ret
-
- .section ".fini"
- ldw ra, 44(sp)
- ldw r23, 40(sp)
- ldw r22, 36(sp)
- ldw r21, 32(sp)
- ldw r20, 28(sp)
- ldw r19, 24(sp)
- ldw r18, 20(sp)
- ldw r17, 16(sp)
- ldw r16, 12(sp)
- ldw fp, 8(sp)
- addi sp, sp, 48
- ret
-
diff --git a/libgcc/config/nios2/lib2-divmod-hi.c b/libgcc/config/nios2/lib2-divmod-hi.c
deleted file mode 100644
index 77cba8e..0000000
--- a/libgcc/config/nios2/lib2-divmod-hi.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright (C) 2012-2024 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-nios2.h"
-
-/* 16-bit HI divide and modulo as used in Nios II. */
-
-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/nios2/lib2-divmod.c b/libgcc/config/nios2/lib2-divmod.c
deleted file mode 100644
index 50a8d32..0000000
--- a/libgcc/config/nios2/lib2-divmod.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright (C) 2012-2024 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-nios2.h"
-
-/* 32-bit SI divide and modulo as used in Nios II. */
-
-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/nios2/lib2-divtable.c b/libgcc/config/nios2/lib2-divtable.c
deleted file mode 100644
index e44497b..0000000
--- a/libgcc/config/nios2/lib2-divtable.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (C) 2012-2024 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-nios2.h"
-
-UQItype __divsi3_table[] =
-{
- 0, 0/1, 0/2, 0/3, 0/4, 0/5, 0/6, 0/7,
- 0/8, 0/9, 0/10, 0/11, 0/12, 0/13, 0/14, 0/15,
- 0, 1/1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7,
- 1/8, 1/9, 1/10, 1/11, 1/12, 1/13, 1/14, 1/15,
- 0, 2/1, 2/2, 2/3, 2/4, 2/5, 2/6, 2/7,
- 2/8, 2/9, 2/10, 2/11, 2/12, 2/13, 2/14, 2/15,
- 0, 3/1, 3/2, 3/3, 3/4, 3/5, 3/6, 3/7,
- 3/8, 3/9, 3/10, 3/11, 3/12, 3/13, 3/14, 3/15,
- 0, 4/1, 4/2, 4/3, 4/4, 4/5, 4/6, 4/7,
- 4/8, 4/9, 4/10, 4/11, 4/12, 4/13, 4/14, 4/15,
- 0, 5/1, 5/2, 5/3, 5/4, 5/5, 5/6, 5/7,
- 5/8, 5/9, 5/10, 5/11, 5/12, 5/13, 5/14, 5/15,
- 0, 6/1, 6/2, 6/3, 6/4, 6/5, 6/6, 6/7,
- 6/8, 6/9, 6/10, 6/11, 6/12, 6/13, 6/14, 6/15,
- 0, 7/1, 7/2, 7/3, 7/4, 7/5, 7/6, 7/7,
- 7/8, 7/9, 7/10, 7/11, 7/12, 7/13, 7/14, 7/15,
- 0, 8/1, 8/2, 8/3, 8/4, 8/5, 8/6, 8/7,
- 8/8, 8/9, 8/10, 8/11, 8/12, 8/13, 8/14, 8/15,
- 0, 9/1, 9/2, 9/3, 9/4, 9/5, 9/6, 9/7,
- 9/8, 9/9, 9/10, 9/11, 9/12, 9/13, 9/14, 9/15,
- 0, 10/1, 10/2, 10/3, 10/4, 10/5, 10/6, 10/7,
- 10/8, 10/9, 10/10, 10/11, 10/12, 10/13, 10/14, 10/15,
- 0, 11/1, 11/2, 11/3, 11/4, 11/5, 11/6, 11/7,
- 11/8, 11/9, 11/10, 11/11, 11/12, 11/13, 11/14, 11/15,
- 0, 12/1, 12/2, 12/3, 12/4, 12/5, 12/6, 12/7,
- 12/8, 12/9, 12/10, 12/11, 12/12, 12/13, 12/14, 12/15,
- 0, 13/1, 13/2, 13/3, 13/4, 13/5, 13/6, 13/7,
- 13/8, 13/9, 13/10, 13/11, 13/12, 13/13, 13/14, 13/15,
- 0, 14/1, 14/2, 14/3, 14/4, 14/5, 14/6, 14/7,
- 14/8, 14/9, 14/10, 14/11, 14/12, 14/13, 14/14, 14/15,
- 0, 15/1, 15/2, 15/3, 15/4, 15/5, 15/6, 15/7,
- 15/8, 15/9, 15/10, 15/11, 15/12, 15/13, 15/14, 15/15,
-};
-
diff --git a/libgcc/config/nios2/lib2-mul.c b/libgcc/config/nios2/lib2-mul.c
deleted file mode 100644
index 4d6abea..0000000
--- a/libgcc/config/nios2/lib2-mul.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 2012-2024 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-nios2.h"
-
-/* 32-bit SI multiply for Nios II. */
-
-SItype
-__mulsi3 (SItype a, SItype b)
-{
- SItype res = 0;
- USItype cnt = a;
-
- while (cnt)
- {
- if (cnt & 1)
- res += b;
- b <<= 1;
- cnt >>= 1;
- }
-
- return res;
-}
diff --git a/libgcc/config/nios2/lib2-nios2.h b/libgcc/config/nios2/lib2-nios2.h
deleted file mode 100644
index 3d2e3b3..0000000
--- a/libgcc/config/nios2/lib2-nios2.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Integer arithmetic support for Altera Nios II.
-
- Copyright (C) 2012-2024 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_NIOS2_H
-#define LIB2_NIOS2_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_NIOS2_H */
diff --git a/libgcc/config/nios2/linux-atomic.c b/libgcc/config/nios2/linux-atomic.c
deleted file mode 100644
index 26308ce..0000000
--- a/libgcc/config/nios2/linux-atomic.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/* Linux-specific atomic operations for Nios II Linux.
- Copyright (C) 2008-2024 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/>. */
-
-/* We implement byte, short and int versions of each atomic operation
- using the kernel helper defined below. There is no support for
- 64-bit operations yet. */
-
-/* Crash a userspace program with SIGSEV. */
-#define ABORT_INSTRUCTION asm ("stw zero, 0(zero)")
-
-/* Kernel helper for compare-and-exchange a 32-bit value. */
-static inline long
-__kernel_cmpxchg (int oldval, int newval, int *mem)
-{
- register int r2 asm ("r2");
- register int *r4 asm ("r4") = mem;
- register int r5 asm ("r5") = oldval;
- register int r6 asm ("r6") = newval;
-
- /* Call the kernel provided fixed address cmpxchg helper routine. */
- asm volatile ("movi %0, %4\n\t"
- "callr %0\n"
- : "=r" (r2)
- : "r" (r4), "r" (r5), "r" (r6), "I" (0x00001004)
- : "ra", "memory");
- return r2;
-}
-
-#define HIDDEN __attribute__ ((visibility ("hidden")))
-
-#ifdef __nios2_little_endian__
-#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 long) ptr & ~3); \
- unsigned int mask, shift, oldval, newval; \
- int failure; \
- \
- shift = (((unsigned long) 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 long) ptr & ~3), fail; \
- unsigned int mask, shift, actual_oldval, actual_newval; \
- \
- shift = (((unsigned long) 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)
-
-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 long) ptr & ~3); \
- \
- shift = (((unsigned long) 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. */ \
- __builtin_sync (); \
- *ptr = 0; \
- }
-
-SYNC_LOCK_RELEASE (int, 4)
-SYNC_LOCK_RELEASE (short, 2)
-SYNC_LOCK_RELEASE (char, 1)
diff --git a/libgcc/config/nios2/linux-unwind.h b/libgcc/config/nios2/linux-unwind.h
deleted file mode 100644
index 3fee5b6..0000000
--- a/libgcc/config/nios2/linux-unwind.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* DWARF2 EH unwinding support for Nios II Linux.
- Copyright (C) 2008-2024 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/>. */
-
-#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.
- The corresponding bits in the Linux kernel are in
- arch/nios2/kernel/signal.c. */
-
-#include <signal.h>
-#include <asm/unistd.h>
-
-/* Exactly the same layout as the kernel structures, unique names. */
-struct nios2_mcontext {
- int version;
- int gregs[32];
-};
-
-struct nios2_ucontext {
- unsigned long uc_flags;
- ucontext_t *uc_link;
- stack_t uc_stack;
- struct nios2_mcontext uc_mcontext;
- sigset_t uc_sigmask; /* mask last for extensibility */
-};
-
-#define MD_FALLBACK_FRAME_STATE_FOR nios2_fallback_frame_state
-
-static _Unwind_Reason_Code
-nios2_fallback_frame_state (struct _Unwind_Context *context,
- _Unwind_FrameState *fs)
-{
- u_int32_t *pc = (u_int32_t *) context->ra;
- _Unwind_Ptr new_cfa;
-
- /* The expected sequence of instructions is:
- movi r2,(rt_sigreturn)
- trap
- Check for the trap first. */
- if (pc[1] != 0x003b683a)
- return _URC_END_OF_STACK;
-
-#define NIOS2_REG(NUM,NAME) \
- (fs->regs.how[NUM] = REG_SAVED_OFFSET, \
- fs->regs.reg[NUM].loc.offset = (_Unwind_Ptr)&(regs->NAME) - new_cfa)
-
- if (pc[0] == (0x00800004 | (__NR_rt_sigreturn << 6)))
- {
- struct rt_sigframe {
- siginfo_t info;
- struct nios2_ucontext uc;
- } *rt_ = context->cfa;
- struct nios2_mcontext *regs = &rt_->uc.uc_mcontext;
- int i;
-
- /* MCONTEXT_VERSION is defined to 2 in the kernel. */
- if (regs->version != 2)
- return _URC_END_OF_STACK;
-
- /* The CFA is the user's incoming stack pointer value. */
- new_cfa = (_Unwind_Ptr)regs->gregs[28];
- fs->regs.cfa_how = CFA_REG_OFFSET;
- fs->regs.cfa_reg = __LIBGCC_STACK_POINTER_REGNUM__;
- fs->regs.cfa_offset = new_cfa - (_Unwind_Ptr) context->cfa;
-
- /* The sequential registers. */
- for (i = 1; i < 24; i++)
- NIOS2_REG (i, gregs[i-1]);
-
- /* The random registers. The kernel stores these in a funny order
- in the gregs array. */
- NIOS2_REG (RA_REGNO, gregs[23]);
- NIOS2_REG (FP_REGNO, gregs[24]);
- NIOS2_REG (GP_REGNO, gregs[25]);
- NIOS2_REG (EA_REGNO, gregs[27]);
-
- fs->retaddr_column = EA_REGNO;
- fs->signal_frame = 1;
-
- return _URC_NO_REASON;
- }
-#undef NIOS2_REG
- return _URC_END_OF_STACK;
-}
-#endif
diff --git a/libgcc/config/nios2/sfp-machine.h b/libgcc/config/nios2/sfp-machine.h
deleted file mode 100644
index d8ab80c..0000000
--- a/libgcc/config/nios2/sfp-machine.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Soft-FP definitions for Altera Nios II.
- Copyright (C) 2013-2024 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/>. */
-
-#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)
-
-/* Not checked. */
-#define _FP_TININESS_AFTER_ROUNDING 0
-
-#define __LITTLE_ENDIAN 1234
-#define __BIG_ENDIAN 4321
-
-#ifdef __nios2_little_endian__
-#define __BYTE_ORDER __LITTLE_ENDIAN
-#else
-#define __BYTE_ORDER __BIG_ENDIAN
-#endif
-
-/* 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/nios2/t-linux b/libgcc/config/nios2/t-linux
deleted file mode 100644
index 1fa581e..0000000
--- a/libgcc/config/nios2/t-linux
+++ /dev/null
@@ -1,7 +0,0 @@
-# Soft-float functions go in glibc only, to facilitate the possible
-# future addition of exception and rounding mode support integrated
-# with <fenv.h>.
-
-LIB2FUNCS_EXCLUDE = _floatdidf _floatdisf _fixunsdfsi _fixunssfsi \
- _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _floatundidf _floatundisf
-LIB2ADD += $(srcdir)/config/nios2/linux-atomic.c
diff --git a/libgcc/config/nios2/t-nios2 b/libgcc/config/nios2/t-nios2
deleted file mode 100644
index 7a81a7f..0000000
--- a/libgcc/config/nios2/t-nios2
+++ /dev/null
@@ -1,8 +0,0 @@
-LIB2ADD += $(srcdir)/config/nios2/lib2-divmod.c \
- $(srcdir)/config/nios2/lib2-divmod-hi.c \
- $(srcdir)/config/nios2/lib2-divtable.c \
- $(srcdir)/config/nios2/lib2-mul.c \
- $(srcdir)/config/nios2/tramp.c
-
-# Disable use of GP-relative addressing in startup code.
-CRTSTUFF_T_CFLAGS += -mno-gpopt
diff --git a/libgcc/config/nios2/tramp.c b/libgcc/config/nios2/tramp.c
deleted file mode 100644
index fa0e20f..0000000
--- a/libgcc/config/nios2/tramp.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 2013-2024 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/>. */
-
-/* Set up trampolines.
- R12 is the static chain register.
- R2 is AT, the assembler temporary.
- The trampoline code looks like:
- movhi r12,%hi(chain)
- ori r12,%lo(chain)
- movhi r2,%hi(fn)
- ori r2,%lo(fn)
- jmp r2
-*/
-
-#define SC_REGNO 12
-
-/* Instruction encodings depend on the ISA level. */
-#if __nios2_arch__ == 2
-#define MOVHI(reg,imm16) \
- (((reg) << 11) | ((imm16) << 16) | 0x34)
-#define ORI(reg,imm16) \
- (((reg) << 11) | ((reg) << 6) | ((imm16) << 16) | 0x14)
-#define JMP(reg) \
- (((reg) << 6) | (0x0d << 26) | 0x20)
-
-#elif __nios2_arch__ == 1
-#define MOVHI(reg,imm16) \
- (((reg) << 22) | ((imm16) << 6) | 0x34)
-#define ORI(reg,imm16) \
- (((reg) << 27) | ((reg) << 22) | ((imm16) << 6) | 0x14)
-#define JMP(reg) \
- (((reg) << 27) | (0x0d << 11) | 0x3a)
-
-#else
-#error "Unknown Nios II architecture level"
-#endif
-
-void
-__trampoline_setup (unsigned int *addr, void *fnptr, void *chainptr)
-{
- unsigned int fn = (unsigned int) fnptr;
- unsigned int chain = (unsigned int) chainptr;
- int i;
-
- addr[0] = MOVHI (SC_REGNO, ((chain >> 16) & 0xffff));
- addr[1] = ORI (SC_REGNO, (chain & 0xffff));
- addr[2] = MOVHI (2, ((fn >> 16) & 0xffff));
- addr[3] = ORI (2, (fn & 0xffff));
- addr[4] = JMP (2);
-
- /* Flush the caches.
- See Example 9-4 in the Nios II Software Developer's Handbook. */
- for (i = 0; i < 5; i++)
- asm volatile ("flushd 0(%0); flushi %0" :: "r"(addr + i) : "memory");
- asm volatile ("flushp" ::: "memory");
-}
diff --git a/libgcc/config/no-unwind.h b/libgcc/config/no-unwind.h
index 0ecd78a..7400fd4 100644
--- a/libgcc/config/no-unwind.h
+++ b/libgcc/config/no-unwind.h
@@ -1,2 +1,3 @@
/* Dummy header for targets without a definition of
- MD_FALLBACK_FRAME_STATE_FOR. */
+ architecture-specific frame information types, or
+ handlers used in the unwinder. */
diff --git a/libgcc/config/nvptx/alloca.c b/libgcc/config/nvptx/alloca.c
new file mode 100644
index 0000000..09bdeb6
--- /dev/null
+++ b/libgcc/config/nvptx/alloca.c
@@ -0,0 +1,38 @@
+/* Fake 'alloca' implementation.
+
+ Copyright (C) 2025 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/>. */
+
+/* For '-mfake-ptx-alloca', in case real PTX 'alloca' is not available.
+ With this function defined, we don't get a link-time failure
+ (unresolved symbol '__GCC_nvptx__PTX_alloca_not_supported'), but rather:
+ successful execution, in case that 'alloca' is not attempted (if only used
+ in error code paths, for example), and a run-time failure only in case that
+ 'alloca' is actually attempted. */
+
+void *
+__GCC_nvptx__PTX_alloca_not_supported (__SIZE_TYPE__ size __attribute__ ((unused)))
+{
+ __builtin_printf ("GCC/nvptx: sorry, unimplemented:"
+ " dynamic stack allocation not supported\n");
+ __builtin_abort ();
+ return 0;
+}
diff --git a/libgcc/config/nvptx/atomic.c b/libgcc/config/nvptx/atomic.c
index fd36088..1e7f002 100644
--- a/libgcc/config/nvptx/atomic.c
+++ b/libgcc/config/nvptx/atomic.c
@@ -1,5 +1,5 @@
/* NVPTX atomic operations
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
Contributed by Mentor Graphics.
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 47e8ec4..3ea2849 100644
--- a/libgcc/config/nvptx/crt0.c
+++ b/libgcc/config/nvptx/crt0.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 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/gbl-ctors.c b/libgcc/config/nvptx/gbl-ctors.c
index a56d64f..10954ee 100644
--- a/libgcc/config/nvptx/gbl-ctors.c
+++ b/libgcc/config/nvptx/gbl-ctors.c
@@ -1,6 +1,6 @@
/* Global constructor/destructor support
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 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,6 +31,20 @@
extern int atexit (void (*function) (void));
+/* Host/device compatibility: '__cxa_finalize'. Dummy; if necessary,
+ overridden via libgomp 'target-cxa-dso-dtor.c'. */
+
+extern void __GCC_offload___cxa_finalize (void *);
+
+void __attribute__((weak))
+__GCC_offload___cxa_finalize (void *dso_handle __attribute__((unused)))
+{
+}
+
+/* There are no DSOs; this is the main program. */
+static void * const __dso_handle = 0;
+
+
/* Handler functions ('static', in contrast to the 'gbl-ctors.h'
prototypes). */
@@ -49,6 +63,8 @@ static void __static_do_global_dtors (void);
static void
__static_do_global_dtors (void)
{
+ __GCC_offload___cxa_finalize (__dso_handle);
+
func_ptr *p = __DTOR_LIST__;
++p;
for (; *p; ++p)
diff --git a/libgcc/config/nvptx/mgomp.c b/libgcc/config/nvptx/mgomp.c
index 579eaf6..21704c6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 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 29880a2..5803b55 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 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 ab1e59e..f537a1d 100644
--- a/libgcc/config/nvptx/reduction.c
+++ b/libgcc/config/nvptx/reduction.c
@@ -1,5 +1,5 @@
/* Oversized reductions lock variable
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by Mentor Graphics.
This file is part of GCC.
diff --git a/libgcc/config/nvptx/t-nvptx b/libgcc/config/nvptx/t-nvptx
index 1ff574c..5e2e278 100644
--- a/libgcc/config/nvptx/t-nvptx
+++ b/libgcc/config/nvptx/t-nvptx
@@ -1,10 +1,8 @@
LIB2ADD=$(srcdir)/config/nvptx/reduction.c \
$(srcdir)/config/nvptx/mgomp.c \
$(srcdir)/config/nvptx/atomic.c \
- $(srcdir)/config/nvptx/unwind-nvptx.c
-
-# Until we have libstdc++-v3/libsupc++ proper.
-LIB2ADD += $(srcdir)/c++-minimal/guard.c
+ $(srcdir)/config/nvptx/unwind-nvptx.c \
+ $(srcdir)/config/nvptx/alloca.c
LIB2ADDEH=
LIB2FUNCS_EXCLUDE=
diff --git a/libgcc/config/nvptx/unwind-nvptx.c b/libgcc/config/nvptx/unwind-nvptx.c
index d08ba26..97e22c0 100644
--- a/libgcc/config/nvptx/unwind-nvptx.c
+++ b/libgcc/config/nvptx/unwind-nvptx.c
@@ -1,6 +1,6 @@
/* Stub unwinding implementation.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
Contributed by Mentor Graphics
This file is free software; you can redistribute it and/or modify it
@@ -25,6 +25,33 @@
#include "unwind.h"
_Unwind_Reason_Code
+_Unwind_RaiseException(struct _Unwind_Exception *exc __attribute__ ((__unused__)))
+{
+ __builtin_abort ();
+ return 0;
+}
+
+void
+_Unwind_DeleteException (struct _Unwind_Exception *exc)
+{
+ if (exc->exception_cleanup)
+ (*exc->exception_cleanup) (_URC_FOREIGN_EXCEPTION_CAUGHT, exc);
+}
+
+void
+_Unwind_Resume (struct _Unwind_Exception *exc __attribute__ ((__unused__)))
+{
+ __builtin_abort ();
+}
+
+_Unwind_Reason_Code
+_Unwind_Resume_or_Rethrow (struct _Unwind_Exception *exc __attribute__ ((__unused__)))
+{
+ __builtin_abort ();
+ return 0;
+}
+
+_Unwind_Reason_Code
_Unwind_Backtrace(_Unwind_Trace_Fn trace, void * trace_argument)
{
return 0;
diff --git a/libgcc/config/or1k/lib1funcs.S b/libgcc/config/or1k/lib1funcs.S
index 0c2ec5f..6f4f145 100644
--- a/libgcc/config/or1k/lib1funcs.S
+++ b/libgcc/config/or1k/lib1funcs.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 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
@@ -19,6 +19,11 @@ 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/>. */
+/* An executable stack is *not* required for these functions. */
+#ifdef __linux__
+.section .note.GNU-stack,"",%progbits
+.previous
+#endif
#ifdef L__mulsi3
.balign 4
diff --git a/libgcc/config/or1k/linux-unwind.h b/libgcc/config/or1k/linux-unwind.h
index 5fc7707..cddfdac 100644
--- a/libgcc/config/or1k/linux-unwind.h
+++ b/libgcc/config/or1k/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for OpenRISC Linux.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/or1k/t-or1k b/libgcc/config/or1k/t-or1k
index 7675077..9953818 100644
--- a/libgcc/config/or1k/t-or1k
+++ b/libgcc/config/or1k/t-or1k
@@ -1,5 +1,5 @@
# Libgcc Makefile fragment for OpenRISC
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# Contributed by Stafford Horne.
#
# This file is part of GCC.
diff --git a/libgcc/config/pa/fptr.c b/libgcc/config/pa/fptr.c
index 03cec14..339ee23 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by John David Anglin (dave.anglin@nrc.ca).
This file is part of GCC.
@@ -67,7 +67,7 @@ _dl_read_access_allowed (unsigned int addr)
/* __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
+ must be linked into all binaries in order access the got table of
that binary. However, we don't use the millicode calling convention
and the routine must be a normal function so that it can be compiled
as pic code. */
diff --git a/libgcc/config/pa/gthr-dce.h b/libgcc/config/pa/gthr-dce.h
index 58196f78..83c53bd 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 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 0e4d318..bf8b8c3 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 71f04c0..9291d6c 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-2024 Free Software Foundation, Inc.
+; Copyright (C) 1994-2025 Free Software Foundation, Inc.
; This file is part of GCC.
diff --git a/libgcc/config/pa/linux-atomic.c b/libgcc/config/pa/linux-atomic.c
index 14e09c4..09436dd 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Based on code contributed by CodeSourcery for ARM EABI Linux.
Modifications for PA Linux by Helge Deller <deller@gmx.de>
@@ -24,9 +24,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 EFAULT 14
+#define EFAULT 14
#define EBUSY 16
-#define ENOSYS 251
+#define ENOSYS 251
#define _ASM_EFAULT "-14"
@@ -264,8 +264,6 @@ OP_AND_FETCH_WORD (and, , &)
OP_AND_FETCH_WORD (xor, , ^)
OP_AND_FETCH_WORD (nand, ~, &)
-typedef unsigned char bool;
-
#define COMPARE_AND_SWAP_2(TYPE, WIDTH, INDEX) \
TYPE HIDDEN \
__sync_val_compare_and_swap_##WIDTH (volatile void *ptr, TYPE oldval, \
@@ -306,7 +304,7 @@ __sync_val_compare_and_swap_4 (volatile void *ptr, unsigned int oldval,
{
long fail;
unsigned int actual_oldval;
-
+
while (1)
{
actual_oldval = atomic_load_4 ((volatile unsigned int *)ptr);
@@ -315,7 +313,7 @@ __sync_val_compare_and_swap_4 (volatile void *ptr, unsigned int oldval,
return actual_oldval;
fail = __kernel_cmpxchg (ptr, actual_oldval, newval);
-
+
if (__builtin_expect (!fail, 1))
return actual_oldval;
}
diff --git a/libgcc/config/pa/linux-unwind.h b/libgcc/config/pa/linux-unwind.h
index 3b823f6..da0bef1 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -49,8 +49,8 @@ pa32_read_access_ok (void *p)
In 2.4, the signal trampoline is 4 words, and (CONTEXT)->ra should
point directly at the beginning of the trampoline and struct rt_sigframe.
- In <= 2.6.5-rc2-pa3, the signal trampoline is 9 words, and
- (CONTEXT)->ra points at the 4th word in the trampoline structure. This
+ In <= 2.6.5-rc2-pa3, the signal trampoline is 9 words, and
+ (CONTEXT)->ra points at the 4th word in the trampoline structure. This
is wrong, it should point at the 5th word. This is fixed in 2.6.5-rc2-pa4.
To detect these cases, we first take (CONTEXT)->ra, align it to 64-bytes
diff --git a/libgcc/config/pa/milli64.S b/libgcc/config/pa/milli64.S
index 11bfe1b..5f712bf 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/pa/pa64-hpux-lib.h b/libgcc/config/pa/pa64-hpux-lib.h
index bee43c0..2387b76 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 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 9ecc8e0..07e70a9 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -79,7 +79,7 @@ _U_Qfne (long double a, long double b)
{
return (_U_Qfcmp (a, b, QCMP_EQ) == 0);
}
-
+
int
_U_Qfgt (long double a, long double b)
{
diff --git a/libgcc/config/pa/sfp-exceptions.c b/libgcc/config/pa/sfp-exceptions.c
index 8ebb4c6..83cb9db 100644
--- a/libgcc/config/pa/sfp-exceptions.c
+++ b/libgcc/config/pa/sfp-exceptions.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1997-2025 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/pa/sfp-machine.h b/libgcc/config/pa/sfp-machine.h
index c0dd743..9f472f1 100644
--- a/libgcc/config/pa/sfp-machine.h
+++ b/libgcc/config/pa/sfp-machine.h
@@ -1,5 +1,5 @@
/* softfp machine description for PA-RISC.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 c8757a4..681c765 100644
--- a/libgcc/config/pa/stublib.c
+++ b/libgcc/config/pa/stublib.c
@@ -1,5 +1,5 @@
/* Stub functions.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/pa/sync-libfuncs.c b/libgcc/config/pa/sync-libfuncs.c
index 4aab55a..774c160 100644
--- a/libgcc/config/pa/sync-libfuncs.c
+++ b/libgcc/config/pa/sync-libfuncs.c
@@ -1,5 +1,5 @@
/* PA-RISC sync libfunc support.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Based on code contributed by CodeSourcery for ARM EABI Linux.
Modifications for PA Linux by Helge Deller <deller@gmx.de>
Revised for general use by John David Anglin <danglin@gcc.gnu.org>
diff --git a/libgcc/config/pa/t-slibgcc-hpux b/libgcc/config/pa/t-slibgcc-hpux
index 2c6f52c..e7a1318 100644
--- a/libgcc/config/pa/t-slibgcc-hpux
+++ b/libgcc/config/pa/t-slibgcc-hpux
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# Copyright (C) 2001-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/pru/asri.c b/libgcc/config/pru/asri.c
index 42c55d2..9d36750 100644
--- a/libgcc/config/pru/asri.c
+++ b/libgcc/config/pru/asri.c
@@ -1,6 +1,6 @@
/* PRU ABI compatibility functions
Arithmetic right shift
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
This file is free software; you can redistribute it and/or
diff --git a/libgcc/config/pru/eqd.c b/libgcc/config/pru/eqd.c
index 077e38a..31d21e5 100644
--- a/libgcc/config/pru/eqd.c
+++ b/libgcc/config/pru/eqd.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a == b, 0 otherwise.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/pru/eqf.c b/libgcc/config/pru/eqf.c
index f2a07f5..0562fe2 100644
--- a/libgcc/config/pru/eqf.c
+++ b/libgcc/config/pru/eqf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a == b, 0 otherwise.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/pru/ged.c b/libgcc/config/pru/ged.c
index 3aec002..ceae51e 100644
--- a/libgcc/config/pru/ged.c
+++ b/libgcc/config/pru/ged.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a >= b, 0 otherwise.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/pru/gef.c b/libgcc/config/pru/gef.c
index 8850673..9faa4e9 100644
--- a/libgcc/config/pru/gef.c
+++ b/libgcc/config/pru/gef.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a >= b, 0 otherwise.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/pru/gtd.c b/libgcc/config/pru/gtd.c
index 54ae68c..45a21b6 100644
--- a/libgcc/config/pru/gtd.c
+++ b/libgcc/config/pru/gtd.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a > b, 0 otherwise.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/pru/gtf.c b/libgcc/config/pru/gtf.c
index d1ca3c1..a39e74d 100644
--- a/libgcc/config/pru/gtf.c
+++ b/libgcc/config/pru/gtf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a > b, 0 otherwise.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/pru/led.c b/libgcc/config/pru/led.c
index efb7895..22c7304 100644
--- a/libgcc/config/pru/led.c
+++ b/libgcc/config/pru/led.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a <= b, 0 otherwise.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/pru/lef.c b/libgcc/config/pru/lef.c
index d2fbcd0..c89eb30 100644
--- a/libgcc/config/pru/lef.c
+++ b/libgcc/config/pru/lef.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a <= b, 0 otherwise.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/pru/lib2bitcountHI.c b/libgcc/config/pru/lib2bitcountHI.c
index b14ab28..66bdb74 100644
--- a/libgcc/config/pru/lib2bitcountHI.c
+++ b/libgcc/config/pru/lib2bitcountHI.c
@@ -1,5 +1,5 @@
/* libgcc routines for PRU
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
Based on lib2bitcountHI.c from MSP430 port.
This file is part of GCC.
diff --git a/libgcc/config/pru/lib2divHI.c b/libgcc/config/pru/lib2divHI.c
index d777129..fe588ee 100644
--- a/libgcc/config/pru/lib2divHI.c
+++ b/libgcc/config/pru/lib2divHI.c
@@ -1,5 +1,5 @@
/* HI mode divide routines for libgcc for PRU
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
Based on lib2divHI.c from MSP430 port.
This file is part of GCC.
diff --git a/libgcc/config/pru/lib2divQI.c b/libgcc/config/pru/lib2divQI.c
index 6847e3c..a62e6b8b 100644
--- a/libgcc/config/pru/lib2divQI.c
+++ b/libgcc/config/pru/lib2divQI.c
@@ -1,5 +1,5 @@
/* QI mode divide routines for libgcc for PRU
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
Based on lib2divQI.c from MSP430 port.
This file is part of GCC.
diff --git a/libgcc/config/pru/lib2divSI.c b/libgcc/config/pru/lib2divSI.c
index 4937b5c..f2d88ca 100644
--- a/libgcc/config/pru/lib2divSI.c
+++ b/libgcc/config/pru/lib2divSI.c
@@ -1,5 +1,5 @@
/* SI mode divide routines for libgcc for PRU
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
Based on lib2divSI.c from MSP430 port.
This file is part of GCC.
diff --git a/libgcc/config/pru/libgcc-eabi.ver b/libgcc/config/pru/libgcc-eabi.ver
index 55d42a8..e8f7fe2 100644
--- a/libgcc/config/pru/libgcc-eabi.ver
+++ b/libgcc/config/pru/libgcc-eabi.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/pru/ltd.c b/libgcc/config/pru/ltd.c
index 3e596d7..4c9f56e 100644
--- a/libgcc/config/pru/ltd.c
+++ b/libgcc/config/pru/ltd.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a < b, 0 otherwise.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/pru/ltf.c b/libgcc/config/pru/ltf.c
index 5629fc9..1e21a27 100644
--- a/libgcc/config/pru/ltf.c
+++ b/libgcc/config/pru/ltf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a < b, 0 otherwise.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/config/pru/mpyll.S b/libgcc/config/pru/mpyll.S
index 5430945..5ef05b1 100644
--- a/libgcc/config/pru/mpyll.S
+++ b/libgcc/config/pru/mpyll.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/pru/pru-abi.h b/libgcc/config/pru/pru-abi.h
index 91a6b6d..a284c8b 100644
--- a/libgcc/config/pru/pru-abi.h
+++ b/libgcc/config/pru/pru-abi.h
@@ -1,5 +1,5 @@
/* Header file for PRU ABI versions of libgcc functions.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
Based on c6x/c6x-abi.h
diff --git a/libgcc/config/pru/pru-asm.h b/libgcc/config/pru/pru-asm.h
index 971d44b..a530bf9 100644
--- a/libgcc/config/pru/pru-asm.h
+++ b/libgcc/config/pru/pru-asm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
This file is free software; you can redistribute it and/or modify it
diff --git a/libgcc/config/pru/pru-divmod.h b/libgcc/config/pru/pru-divmod.h
index 87fb4a2..4d7bdee 100644
--- a/libgcc/config/pru/pru-divmod.h
+++ b/libgcc/config/pru/pru-divmod.h
@@ -1,5 +1,5 @@
/* libgcc routines for PRU
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
Based on msp430-divmod.h from MSP430 port.
This file is part of GCC.
diff --git a/libgcc/config/pru/sfp-machine.h b/libgcc/config/pru/sfp-machine.h
index 49f6696..8b7e3bc 100644
--- a/libgcc/config/pru/sfp-machine.h
+++ b/libgcc/config/pru/sfp-machine.h
@@ -1,5 +1,5 @@
/* Soft-FP definitions for TI PRU.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Based on C6X soft-fp header.
This files is free software; you can redistribute it and/or
diff --git a/libgcc/config/pru/t-pru b/libgcc/config/pru/t-pru
index 824dc36..e844e79 100644
--- a/libgcc/config/pru/t-pru
+++ b/libgcc/config/pru/t-pru
@@ -1,5 +1,5 @@
# Makefile fragment for building LIBGCC for the TI PRU processor.
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of GCC.
diff --git a/libgcc/config/riscv/atomic.c b/libgcc/config/riscv/atomic.c
index bb5c33d..ce3a85d 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-2024 Free Software Foundation, Inc.
+
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/riscv/crti.S b/libgcc/config/riscv/crti.S
index 89bac70..3a67fd7 100644
--- a/libgcc/config/riscv/crti.S
+++ b/libgcc/config/riscv/crti.S
@@ -1 +1,3 @@
/* crti.S is empty because .init_array/.fini_array are used exclusively. */
+
+#include "riscv-asm.h"
diff --git a/libgcc/config/riscv/crtn.S b/libgcc/config/riscv/crtn.S
index ca6ee7b..cb80782 100644
--- a/libgcc/config/riscv/crtn.S
+++ b/libgcc/config/riscv/crtn.S
@@ -1 +1,3 @@
/* crtn.S is empty because .init_array/.fini_array are used exclusively. */
+
+#include "riscv-asm.h"
diff --git a/libgcc/config/riscv/div.S b/libgcc/config/riscv/div.S
index 5ef5012..dfcd551 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/riscv/feature_bits.c b/libgcc/config/riscv/feature_bits.c
new file mode 100644
index 0000000..157bcdc
--- /dev/null
+++ b/libgcc/config/riscv/feature_bits.c
@@ -0,0 +1,402 @@
+/* Helper function for function multi-versioning for RISC-V.
+
+ Copyright (C) 2024-2025 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/>. */
+
+#define RISCV_FEATURE_BITS_LENGTH 2
+
+struct {
+ unsigned length;
+ unsigned long long features[RISCV_FEATURE_BITS_LENGTH];
+} __riscv_feature_bits __attribute__ ((visibility ("hidden"), nocommon));
+
+struct {
+ unsigned mvendorid;
+ unsigned long long marchid;
+ unsigned long long mimpid;
+} __riscv_cpu_model __attribute__ ((visibility ("hidden"), nocommon));
+
+#define A_GROUPID 0
+#define A_BITMASK (1ULL << 0)
+#define C_GROUPID 0
+#define C_BITMASK (1ULL << 2)
+#define D_GROUPID 0
+#define D_BITMASK (1ULL << 3)
+#define F_GROUPID 0
+#define F_BITMASK (1ULL << 5)
+#define I_GROUPID 0
+#define I_BITMASK (1ULL << 8)
+#define M_GROUPID 0
+#define M_BITMASK (1ULL << 12)
+#define V_GROUPID 0
+#define V_BITMASK (1ULL << 21)
+#define ZACAS_GROUPID 0
+#define ZACAS_BITMASK (1ULL << 26)
+#define ZBA_GROUPID 0
+#define ZBA_BITMASK (1ULL << 27)
+#define ZBB_GROUPID 0
+#define ZBB_BITMASK (1ULL << 28)
+#define ZBC_GROUPID 0
+#define ZBC_BITMASK (1ULL << 29)
+#define ZBKB_GROUPID 0
+#define ZBKB_BITMASK (1ULL << 30)
+#define ZBKC_GROUPID 0
+#define ZBKC_BITMASK (1ULL << 31)
+#define ZBKX_GROUPID 0
+#define ZBKX_BITMASK (1ULL << 32)
+#define ZBS_GROUPID 0
+#define ZBS_BITMASK (1ULL << 33)
+#define ZFA_GROUPID 0
+#define ZFA_BITMASK (1ULL << 34)
+#define ZFH_GROUPID 0
+#define ZFH_BITMASK (1ULL << 35)
+#define ZFHMIN_GROUPID 0
+#define ZFHMIN_BITMASK (1ULL << 36)
+#define ZICBOZ_GROUPID 0
+#define ZICBOZ_BITMASK (1ULL << 37)
+#define ZICOND_GROUPID 0
+#define ZICOND_BITMASK (1ULL << 38)
+#define ZIHINTNTL_GROUPID 0
+#define ZIHINTNTL_BITMASK (1ULL << 39)
+#define ZIHINTPAUSE_GROUPID 0
+#define ZIHINTPAUSE_BITMASK (1ULL << 40)
+#define ZKND_GROUPID 0
+#define ZKND_BITMASK (1ULL << 41)
+#define ZKNE_GROUPID 0
+#define ZKNE_BITMASK (1ULL << 42)
+#define ZKNH_GROUPID 0
+#define ZKNH_BITMASK (1ULL << 43)
+#define ZKSED_GROUPID 0
+#define ZKSED_BITMASK (1ULL << 44)
+#define ZKSH_GROUPID 0
+#define ZKSH_BITMASK (1ULL << 45)
+#define ZKT_GROUPID 0
+#define ZKT_BITMASK (1ULL << 46)
+#define ZTSO_GROUPID 0
+#define ZTSO_BITMASK (1ULL << 47)
+#define ZVBB_GROUPID 0
+#define ZVBB_BITMASK (1ULL << 48)
+#define ZVBC_GROUPID 0
+#define ZVBC_BITMASK (1ULL << 49)
+#define ZVFH_GROUPID 0
+#define ZVFH_BITMASK (1ULL << 50)
+#define ZVFHMIN_GROUPID 0
+#define ZVFHMIN_BITMASK (1ULL << 51)
+#define ZVKB_GROUPID 0
+#define ZVKB_BITMASK (1ULL << 52)
+#define ZVKG_GROUPID 0
+#define ZVKG_BITMASK (1ULL << 53)
+#define ZVKNED_GROUPID 0
+#define ZVKNED_BITMASK (1ULL << 54)
+#define ZVKNHA_GROUPID 0
+#define ZVKNHA_BITMASK (1ULL << 55)
+#define ZVKNHB_GROUPID 0
+#define ZVKNHB_BITMASK (1ULL << 56)
+#define ZVKSED_GROUPID 0
+#define ZVKSED_BITMASK (1ULL << 57)
+#define ZVKSH_GROUPID 0
+#define ZVKSH_BITMASK (1ULL << 58)
+#define ZVKT_GROUPID 0
+#define ZVKT_BITMASK (1ULL << 59)
+#define ZVE32X_GROUPID 0
+#define ZVE32X_BITMASK (1ULL << 60)
+#define ZVE32F_GROUPID 0
+#define ZVE32F_BITMASK (1ULL << 61)
+#define ZVE64X_GROUPID 0
+#define ZVE64X_BITMASK (1ULL << 62)
+#define ZVE64F_GROUPID 0
+#define ZVE64F_BITMASK (1ULL << 63)
+#define ZVE64D_GROUPID 1
+#define ZVE64D_BITMASK (1ULL << 0)
+#define ZIMOP_GROUPID 1
+#define ZIMOP_BITMASK (1ULL << 1)
+#define ZCA_GROUPID 1
+#define ZCA_BITMASK (1ULL << 2)
+#define ZCB_GROUPID 1
+#define ZCB_BITMASK (1ULL << 3)
+#define ZCD_GROUPID 1
+#define ZCD_BITMASK (1ULL << 4)
+#define ZCF_GROUPID 1
+#define ZCF_BITMASK (1ULL << 5)
+#define ZCMOP_GROUPID 1
+#define ZCMOP_BITMASK (1ULL << 6)
+#define ZAWRS_GROUPID 1
+#define ZAWRS_BITMASK (1ULL << 7)
+
+#define SET_EXT(EXT) features[EXT##_GROUPID] |= EXT##_BITMASK
+
+#ifdef __linux
+
+#define __NR_riscv_hwprobe 258
+#define RISCV_HWPROBE_KEY_MVENDORID 0
+#define RISCV_HWPROBE_KEY_MARCHID 1
+#define RISCV_HWPROBE_KEY_MIMPID 2
+#define RISCV_HWPROBE_KEY_BASE_BEHAVIOR 3
+#define RISCV_HWPROBE_BASE_BEHAVIOR_IMA (1ULL << 0)
+#define RISCV_HWPROBE_KEY_IMA_EXT_0 4
+#define RISCV_HWPROBE_IMA_FD (1ULL << 0)
+#define RISCV_HWPROBE_IMA_C (1ULL << 1)
+#define RISCV_HWPROBE_IMA_V (1ULL << 2)
+#define RISCV_HWPROBE_EXT_ZBA (1ULL << 3)
+#define RISCV_HWPROBE_EXT_ZBB (1ULL << 4)
+#define RISCV_HWPROBE_EXT_ZBS (1ULL << 5)
+#define RISCV_HWPROBE_EXT_ZICBOZ (1ULL << 6)
+#define RISCV_HWPROBE_EXT_ZBC (1ULL << 7)
+#define RISCV_HWPROBE_EXT_ZBKB (1ULL << 8)
+#define RISCV_HWPROBE_EXT_ZBKC (1ULL << 9)
+#define RISCV_HWPROBE_EXT_ZBKX (1ULL << 10)
+#define RISCV_HWPROBE_EXT_ZKND (1ULL << 11)
+#define RISCV_HWPROBE_EXT_ZKNE (1ULL << 12)
+#define RISCV_HWPROBE_EXT_ZKNH (1ULL << 13)
+#define RISCV_HWPROBE_EXT_ZKSED (1ULL << 14)
+#define RISCV_HWPROBE_EXT_ZKSH (1ULL << 15)
+#define RISCV_HWPROBE_EXT_ZKT (1ULL << 16)
+#define RISCV_HWPROBE_EXT_ZVBB (1ULL << 17)
+#define RISCV_HWPROBE_EXT_ZVBC (1ULL << 18)
+#define RISCV_HWPROBE_EXT_ZVKB (1ULL << 19)
+#define RISCV_HWPROBE_EXT_ZVKG (1ULL << 20)
+#define RISCV_HWPROBE_EXT_ZVKNED (1ULL << 21)
+#define RISCV_HWPROBE_EXT_ZVKNHA (1ULL << 22)
+#define RISCV_HWPROBE_EXT_ZVKNHB (1ULL << 23)
+#define RISCV_HWPROBE_EXT_ZVKSED (1ULL << 24)
+#define RISCV_HWPROBE_EXT_ZVKSH (1ULL << 25)
+#define RISCV_HWPROBE_EXT_ZVKT (1ULL << 26)
+#define RISCV_HWPROBE_EXT_ZFH (1ULL << 27)
+#define RISCV_HWPROBE_EXT_ZFHMIN (1ULL << 28)
+#define RISCV_HWPROBE_EXT_ZIHINTNTL (1ULL << 29)
+#define RISCV_HWPROBE_EXT_ZVFH (1ULL << 30)
+#define RISCV_HWPROBE_EXT_ZVFHMIN (1ULL << 31)
+#define RISCV_HWPROBE_EXT_ZFA (1ULL << 32)
+#define RISCV_HWPROBE_EXT_ZTSO (1ULL << 33)
+#define RISCV_HWPROBE_EXT_ZACAS (1ULL << 34)
+#define RISCV_HWPROBE_EXT_ZICOND (1ULL << 35)
+#define RISCV_HWPROBE_EXT_ZIHINTPAUSE (1ULL << 36)
+#define RISCV_HWPROBE_EXT_ZVE32X (1ULL << 37)
+#define RISCV_HWPROBE_EXT_ZVE32F (1ULL << 38)
+#define RISCV_HWPROBE_EXT_ZVE64X (1ULL << 39)
+#define RISCV_HWPROBE_EXT_ZVE64F (1ULL << 40)
+#define RISCV_HWPROBE_EXT_ZVE64D (1ULL << 41)
+#define RISCV_HWPROBE_EXT_ZIMOP (1ULL << 42)
+#define RISCV_HWPROBE_EXT_ZCA (1ULL << 43)
+#define RISCV_HWPROBE_EXT_ZCB (1ULL << 44)
+#define RISCV_HWPROBE_EXT_ZCD (1ULL << 45)
+#define RISCV_HWPROBE_EXT_ZCF (1ULL << 46)
+#define RISCV_HWPROBE_EXT_ZCMOP (1ULL << 47)
+#define RISCV_HWPROBE_EXT_ZAWRS (1ULL << 48)
+#define RISCV_HWPROBE_KEY_CPUPERF_0 5
+#define RISCV_HWPROBE_MISALIGNED_UNKNOWN (0 << 0)
+#define RISCV_HWPROBE_MISALIGNED_EMULATED (1ULL << 0)
+#define RISCV_HWPROBE_MISALIGNED_SLOW (2 << 0)
+#define RISCV_HWPROBE_MISALIGNED_FAST (3 << 0)
+#define RISCV_HWPROBE_MISALIGNED_UNSUPPORTED (4 << 0)
+#define RISCV_HWPROBE_MISALIGNED_MASK (7 << 0)
+#define RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE 6
+
+struct riscv_hwprobe {
+ long long key;
+ unsigned long long value;
+};
+
+static long syscall_5_args (long number, long arg1, long arg2, long arg3,
+ long arg4, long arg5)
+{
+ register long a7 __asm__ ("a7") = number;
+ register long a0 __asm__ ("a0") = arg1;
+ register long a1 __asm__ ("a1") = arg2;
+ register long a2 __asm__ ("a2") = arg3;
+ register long a3 __asm__ ("a3") = arg4;
+ register long a4 __asm__ ("a4") = arg5;
+ __asm__ __volatile__ ("ecall\n\t"
+ : "=r"(a0)
+ : "r"(a7), "r"(a0), "r"(a1), "r"(a2), "r"(a3), "r"(a4)
+ : "memory");
+ return a0;
+}
+
+#define SET_FROM_HWPROBE(HWPROBE_VAR, EXT) \
+ if (HWPROBE_VAR.value & RISCV_HWPROBE_EXT_##EXT) \
+ SET_EXT (EXT)
+
+#define SET_FROM_IMA_EXT(EXT) \
+ SET_FROM_HWPROBE (hwprobe_ima_ext, EXT)
+
+static void __init_riscv_features_bits_linux ()
+{
+ struct riscv_hwprobe hwprobes[] = {
+ {RISCV_HWPROBE_KEY_MVENDORID, 0},
+ {RISCV_HWPROBE_KEY_MARCHID, 0},
+ {RISCV_HWPROBE_KEY_MIMPID, 0},
+ {RISCV_HWPROBE_KEY_BASE_BEHAVIOR, 0},
+ {RISCV_HWPROBE_KEY_IMA_EXT_0, 0},
+ };
+
+ long res = syscall_5_args (__NR_riscv_hwprobe, (long)&hwprobes,
+ sizeof (hwprobes) / sizeof (hwprobes[0]), 0,
+ 0, 0);
+
+ if (res)
+ return;
+
+ const struct riscv_hwprobe hwprobe_mvendorid = hwprobes[0];
+
+ __riscv_cpu_model.mvendorid = hwprobe_mvendorid.value;
+
+ const struct riscv_hwprobe hwprobe_marchid = hwprobes[1];
+
+ __riscv_cpu_model.marchid = hwprobe_marchid.value;
+
+ const struct riscv_hwprobe hwprobe_mimpid = hwprobes[2];
+
+ __riscv_cpu_model.mimpid = hwprobe_mimpid.value;
+
+ const struct riscv_hwprobe hwprobe_base_behavior = hwprobes[3];
+ unsigned long long features[RISCV_FEATURE_BITS_LENGTH];
+ int i;
+ for (i = 0; i < RISCV_FEATURE_BITS_LENGTH; ++i)
+ features[i] = 0;
+
+ if (hwprobe_base_behavior.value & RISCV_HWPROBE_BASE_BEHAVIOR_IMA)
+ {
+ SET_EXT (I);
+ SET_EXT (M);
+ SET_EXT (A);
+ }
+
+ const struct riscv_hwprobe hwprobe_ima_ext = hwprobes[4];
+ /* Every time we add new extensions, we should check if previous extensions
+ imply the new extension and set the corresponding bit.
+ We don't need to handle cases where:
+ 1. The new extension implies a previous extension (e.g., Zve32f -> F).
+ 2. The extensions imply some other extensions appear in the same release
+ version of Linux Kernel (e.g., Zbc - > Zbkc). */
+
+ if (hwprobe_ima_ext.value & RISCV_HWPROBE_IMA_FD)
+ {
+ SET_EXT (F);
+ SET_EXT (D);
+ }
+
+ if (hwprobe_ima_ext.value & RISCV_HWPROBE_IMA_C)
+ {
+ SET_EXT (C);
+ SET_EXT (ZCA);
+ if (hwprobe_ima_ext.value & RISCV_HWPROBE_IMA_FD)
+ {
+#if __riscv_xlen == 32
+ SET_EXT (ZCF);
+#endif
+ SET_EXT (ZCD);
+ }
+ }
+
+ /* Added since Linux v6.5. */
+ if (hwprobe_ima_ext.value & RISCV_HWPROBE_IMA_V)
+ {
+ SET_EXT (V);
+ SET_EXT (ZVE32X);
+ SET_EXT (ZVE32F);
+ SET_EXT (ZVE64X);
+ SET_EXT (ZVE64F);
+ SET_EXT (ZVE64D);
+ }
+
+ SET_FROM_IMA_EXT (ZBA);
+ SET_FROM_IMA_EXT (ZBB);
+ SET_FROM_IMA_EXT (ZBS);
+ /* Added since Linux v6.7. */
+ SET_FROM_IMA_EXT (ZICBOZ);
+ /* Added since Linux v6.8. */
+ SET_FROM_IMA_EXT (ZBC);
+ SET_FROM_IMA_EXT (ZBKB);
+ SET_FROM_IMA_EXT (ZBKC);
+ SET_FROM_IMA_EXT (ZBKX);
+ SET_FROM_IMA_EXT (ZKND);
+ SET_FROM_IMA_EXT (ZKNE);
+ SET_FROM_IMA_EXT (ZKNH);
+ SET_FROM_IMA_EXT (ZKSED);
+ SET_FROM_IMA_EXT (ZKSH);
+ SET_FROM_IMA_EXT (ZKT);
+ SET_FROM_IMA_EXT (ZVBB);
+ SET_FROM_IMA_EXT (ZVBC);
+ SET_FROM_IMA_EXT (ZVKB);
+ SET_FROM_IMA_EXT (ZVKG);
+ SET_FROM_IMA_EXT (ZVKNED);
+ SET_FROM_IMA_EXT (ZVKNHA);
+ SET_FROM_IMA_EXT (ZVKNHB);
+ SET_FROM_IMA_EXT (ZVKSED);
+ SET_FROM_IMA_EXT (ZVKSH);
+ SET_FROM_IMA_EXT (ZVKT);
+ SET_FROM_IMA_EXT (ZFH);
+ SET_FROM_IMA_EXT (ZFHMIN);
+ SET_FROM_IMA_EXT (ZIHINTNTL);
+ SET_FROM_IMA_EXT (ZVFH);
+ SET_FROM_IMA_EXT (ZVFHMIN);
+ SET_FROM_IMA_EXT (ZFA);
+ SET_FROM_IMA_EXT (ZTSO);
+ SET_FROM_IMA_EXT (ZACAS);
+ SET_FROM_IMA_EXT (ZICOND);
+ /* Added since Linux v6.10. */
+ SET_FROM_IMA_EXT (ZIHINTPAUSE);
+ /* Added since Linux v6.11. */
+ SET_FROM_IMA_EXT (ZVE32X);
+ SET_FROM_IMA_EXT (ZVE32F);
+ SET_FROM_IMA_EXT (ZVE64X);
+ SET_FROM_IMA_EXT (ZVE64F);
+ SET_FROM_IMA_EXT (ZVE64D);
+ SET_FROM_IMA_EXT (ZIMOP);
+ SET_FROM_IMA_EXT (ZCA);
+ SET_FROM_IMA_EXT (ZCB);
+ SET_FROM_IMA_EXT (ZCD);
+ SET_FROM_IMA_EXT (ZCF);
+ SET_FROM_IMA_EXT (ZCMOP);
+ SET_FROM_IMA_EXT (ZAWRS);
+
+ for (i = 0; i < RISCV_FEATURE_BITS_LENGTH; ++i)
+ __riscv_feature_bits.features[i] = features[i];
+
+ __riscv_feature_bits.length = RISCV_FEATURE_BITS_LENGTH;
+}
+#endif
+
+
+static int __init = 0;
+
+void
+__attribute__ ((constructor (101)))
+__init_riscv_feature_bits ()
+{
+ if (__init)
+ return;
+
+#ifdef __linux
+ __init_riscv_features_bits_linux ();
+#else
+ /* Unsupported, just initialize that into all zeros. */
+ __riscv_feature_bits.length = 0;
+ __riscv_cpu_model.mvendorid = 0;
+ __riscv_cpu_model.marchid = 0;
+ __riscv_cpu_model.mimpid = 0;
+#endif
+
+ __init = 1;
+}
diff --git a/libgcc/config/riscv/linux-unwind.h b/libgcc/config/riscv/linux-unwind.h
index 28b1956..db755cd 100644
--- a/libgcc/config/riscv/linux-unwind.h
+++ b/libgcc/config/riscv/linux-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 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
@@ -19,6 +19,11 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+/* Unwind shadow stack. */
+#if defined(__riscv_zicfiss)
+# include "config/riscv/shadow-stack-unwind.h"
+#endif
+
#ifndef inhibit_libc
#include <signal.h>
diff --git a/libgcc/config/riscv/muldi3.S b/libgcc/config/riscv/muldi3.S
index a54d885..e143c0f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 7b7fd78..6c5051d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 f09b306..73bddb3 100644
--- a/libgcc/config/riscv/riscv-asm.h
+++ b/libgcc/config/riscv/riscv-asm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 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
@@ -23,9 +23,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define FUNC_SIZE(X) .size X,.-X
#define FUNC_BEGIN(X) \
+ .align 2; \
.globl X; \
FUNC_TYPE (X); \
-X:
+X: \
+ LPAD
#define FUNC_END(X) \
FUNC_SIZE(X)
@@ -39,3 +41,68 @@ X:
#define HIDDEN_JUMPTARGET(X) CONCAT1(__hidden_, X)
#define HIDDEN_DEF(X) FUNC_ALIAS(HIDDEN_JUMPTARGET(X), X); \
.hidden HIDDEN_JUMPTARGET(X)
+
+/* GNU_PROPERTY_RISCV64_* macros from elf.h for use in asm code. */
+#define FEATURE_1_AND 0xc0000000
+#define FEATURE_1_FCFI 1
+#define FEATURE_1_BCFI 2
+
+/* Add a NT_GNU_PROPERTY_TYPE_0 note. */
+#if __riscv_xlen == 32
+# define GNU_PROPERTY(type, value) \
+ .section .note.gnu.property, "a"; \
+ .p2align 2; \
+ .word 4; \
+ .word 12; \
+ .word 5; \
+ .asciz "GNU"; \
+ .word type; \
+ .word 4; \
+ .word value; \
+ .text
+#else
+# define GNU_PROPERTY(type, value) \
+ .section .note.gnu.property, "a"; \
+ .p2align 3; \
+ .word 4; \
+ .word 16; \
+ .word 5; \
+ .asciz "GNU"; \
+ .word type; \
+ .word 4; \
+ .word value; \
+ .word 0; \
+ .text
+#endif
+
+/* Add GNU property note with the supported features to all asm code
+ where sysdep.h is included. */
+#undef __VALUE_FOR_FEATURE_1_AND
+#if defined (__riscv_zicfilp) || defined (__riscv_zicfiss)
+# if defined (__riscv_zicfilp)
+# if defined (__riscv_zicfiss)
+# define __VALUE_FOR_FEATURE_1_AND 0x3
+# else
+# define __VALUE_FOR_FEATURE_1_AND 0x1
+# endif
+# else
+# if defined (__riscv_zicfiss)
+# define __VALUE_FOR_FEATURE_1_AND 0x2
+# else
+# error "What?"
+# endif
+# endif
+#endif
+
+#if defined (__VALUE_FOR_FEATURE_1_AND)
+GNU_PROPERTY (FEATURE_1_AND, __VALUE_FOR_FEATURE_1_AND)
+#endif
+#undef __VALUE_FOR_FEATURE_1_AND
+
+#ifdef __riscv_zicfilp
+# define SET_LPAD lui t2, 0
+# define LPAD lpad 0
+#else
+# define SET_LPAD
+# define LPAD
+#endif
diff --git a/libgcc/config/riscv/save-restore.S b/libgcc/config/riscv/save-restore.S
index 9bf42d1..fc65447 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -137,6 +137,7 @@ FUNC_BEGIN (__riscv_save_2)
# CFA info is not correct in next 2 instruction since t1's
# value is depend on how may register really save.
add sp, sp, t1
+ SET_LPAD
jr t0
.cfi_endproc
FUNC_END (__riscv_save_12)
@@ -162,6 +163,7 @@ FUNC_BEGIN (__riscv_save_0)
.cfi_offset 8, -16
sd ra, 8(sp)
.cfi_offset 1, -8
+ SET_LPAD
jr t0
.cfi_endproc
FUNC_END (__riscv_save_1)
@@ -295,7 +297,7 @@ FUNC_END (__riscv_restore_0)
#else
-#ifdef __riscv_32e
+#ifdef __riscv_abi_rve
FUNC_BEGIN(__riscv_save_2)
FUNC_BEGIN(__riscv_save_1)
FUNC_BEGIN(__riscv_save_0)
@@ -309,7 +311,8 @@ FUNC_BEGIN(__riscv_save_0)
sw s0, 4(sp)
.cfi_offset 8, -8
sw ra, 8(sp)
- .cfi_offset 1, 0
+ .cfi_offset 1, -4
+ SET_LPAD
jr t0
.cfi_endproc
FUNC_END(__riscv_save_2)
@@ -399,6 +402,7 @@ FUNC_BEGIN (__riscv_save_4)
# CFA info is not correct in next 2 instruction since t1's
# value is depend on how may register really save.
sub sp, sp, t1
+ SET_LPAD
jr t0
.cfi_endproc
FUNC_END (__riscv_save_12)
@@ -421,12 +425,14 @@ FUNC_BEGIN (__riscv_save_0)
addi sp, sp, -16
.cfi_def_cfa_offset 16
sw s2, 0(sp)
+ .cfi_offset 18, -16
sw s1, 4(sp)
- .cfi_offset 9, -16
+ .cfi_offset 9, -12
sw s0, 8(sp)
.cfi_offset 8, -8
sw ra, 12(sp)
.cfi_offset 1, -4
+ SET_LPAD
jr t0
.cfi_endproc
FUNC_END (__riscv_save_3)
@@ -529,6 +535,6 @@ FUNC_END (__riscv_restore_2)
FUNC_END (__riscv_restore_1)
FUNC_END (__riscv_restore_0)
-#endif /* __riscv_32e */
+#endif /* __riscv_abi_rve */
#endif /* __riscv_xlen == 64 */
diff --git a/libgcc/config/riscv/sfp-machine.h b/libgcc/config/riscv/sfp-machine.h
index 9d3552c..93c113c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/riscv/shadow-stack-unwind.h b/libgcc/config/riscv/shadow-stack-unwind.h
new file mode 100644
index 0000000..a978a54
--- /dev/null
+++ b/libgcc/config/riscv/shadow-stack-unwind.h
@@ -0,0 +1,74 @@
+/* _Unwind_Frames_Extra with shadow stack.
+ Copyright (C) 2016-2025 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/>. */
+
+#define LIBGCC2_UNITS_PER_WORD (__riscv_xlen / 8)
+
+/* Unwind the shadow stack for EH. */
+#undef _Unwind_Frames_Extra
+#define _Unwind_Frames_Extra(x) \
+ do \
+ { \
+ _Unwind_Word ssp = 0; \
+ asm volatile ("ssrdp %0" : "=r"(ssp)); \
+ if (ssp != 0) \
+ { \
+ _Unwind_Word tmp = (x); \
+ tmp = tmp * LIBGCC2_UNITS_PER_WORD; \
+ while (tmp > 4096) \
+ { \
+ ssp += 4096; \
+ tmp -= 4096; \
+ asm volatile ("csrw ssp, %0" :: "r"(ssp)); \
+ asm volatile ("sspush x5\n" \
+ "sspopchk x5" : : : "x5"); \
+ } \
+ \
+ if (tmp > 0) \
+ { \
+ ssp += tmp; \
+ asm volatile ("csrw ssp, %0" :: "r"(ssp)); \
+ } \
+ } \
+ } \
+ while (0)
+
+#undef _Unwind_Frames_Increment
+#define _Unwind_Frames_Increment(exc, context, frames) \
+ { \
+ frames++; \
+ if (exc->exception_class != 0 \
+ && _Unwind_GetIP (context) != 0 \
+ && !_Unwind_IsSignalFrame (context)) \
+ { \
+ _Unwind_Word ssp; \
+ asm volatile ("ssrdp %0" : "=r"(ssp)); \
+ if (ssp != 0) \
+ { \
+ ssp += LIBGCC2_UNITS_PER_WORD * frames; \
+ _Unwind_Word ra = *(_Unwind_Word *) ssp; \
+ if (ra != _Unwind_GetIP (context)) \
+ return _URC_FATAL_PHASE2_ERROR; \
+ } \
+ } \
+ }
diff --git a/libgcc/config/riscv/t-elf b/libgcc/config/riscv/t-elf
index 415e1ff..acb5e28 100644
--- a/libgcc/config/riscv/t-elf
+++ b/libgcc/config/riscv/t-elf
@@ -3,6 +3,7 @@ LIB2ADD += $(srcdir)/config/riscv/save-restore.S \
$(srcdir)/config/riscv/multi3.c \
$(srcdir)/config/riscv/div.S \
$(srcdir)/config/riscv/atomic.c \
+ $(srcdir)/config/riscv/feature_bits.c \
# Avoid the full unwinder being pulled along with the division libcalls.
LIB2_DIVMOD_EXCEPTION_FLAGS := -fasynchronous-unwind-tables
diff --git a/libgcc/config/riscv/value-unwind.h b/libgcc/config/riscv/value-unwind.h
index 86b9445..735e3bf 100644
--- a/libgcc/config/riscv/value-unwind.h
+++ b/libgcc/config/riscv/value-unwind.h
@@ -1,5 +1,5 @@
/* Store register values as _Unwind_Word type in DWARF2 EH unwind context.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rl78/adddi3.S b/libgcc/config/rl78/adddi3.S
index a43b823..0620ee6 100644
--- a/libgcc/config/rl78/adddi3.S
+++ b/libgcc/config/rl78/adddi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017-2024 Free Software Foundation, Inc.
+; Copyright (C) 2017-2025 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 60a9f54..b96a499 100644
--- a/libgcc/config/rl78/anddi3.S
+++ b/libgcc/config/rl78/anddi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017-2024 Free Software Foundation, Inc.
+; Copyright (C) 2017-2025 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 4941868..487532f 100644
--- a/libgcc/config/rl78/bit-count.S
+++ b/libgcc/config/rl78/bit-count.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+; Copyright (C) 2012-2025 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 a96fa99..ee1edf2 100644
--- a/libgcc/config/rl78/cmpsi2.S
+++ b/libgcc/config/rl78/cmpsi2.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2011-2024 Free Software Foundation, Inc.
+; Copyright (C) 2011-2025 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 0b22bfb..b089c5c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 791b26e..4d35bfc 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 85c0327..e47e744 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 e273a2a..efc5113 100644
--- a/libgcc/config/rl78/lib2div.c
+++ b/libgcc/config/rl78/lib2div.c
@@ -1,5 +1,5 @@
/* libgcc routines for RL78
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 46983edd..c40d121 100644
--- a/libgcc/config/rl78/lib2mul.c
+++ b/libgcc/config/rl78/lib2mul.c
@@ -1,5 +1,5 @@
/* libgcc routines for RL78
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 6a6f678..b45b494 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 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 1527d26..d72ca83 100644
--- a/libgcc/config/rl78/lshrsi3.S
+++ b/libgcc/config/rl78/lshrsi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2011-2024 Free Software Foundation, Inc.
+; Copyright (C) 2011-2025 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 f1aa9c9..019c8b7 100644
--- a/libgcc/config/rl78/mulsi3.S
+++ b/libgcc/config/rl78/mulsi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2011-2024 Free Software Foundation, Inc.
+; Copyright (C) 2011-2025 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 8186171..7807d63 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 434697d..dcabc28 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 6a0d61d..8d93489 100644
--- a/libgcc/config/rl78/signbit.S
+++ b/libgcc/config/rl78/signbit.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+; Copyright (C) 2012-2025 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 a29de4c..3e64807 100644
--- a/libgcc/config/rl78/smaxdi3.S
+++ b/libgcc/config/rl78/smaxdi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017-2024 Free Software Foundation, Inc.
+; Copyright (C) 2017-2025 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 5aade04..b236b44 100644
--- a/libgcc/config/rl78/smindi3.S
+++ b/libgcc/config/rl78/smindi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017-2024 Free Software Foundation, Inc.
+; Copyright (C) 2017-2025 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 40c1d57..0306b99 100644
--- a/libgcc/config/rl78/subdi3.S
+++ b/libgcc/config/rl78/subdi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017-2024 Free Software Foundation, Inc.
+; Copyright (C) 2017-2025 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 21b3f52..96cb5a3 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 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 b5dbfb2..a729de4 100644
--- a/libgcc/config/rl78/trampoline.S
+++ b/libgcc/config/rl78/trampoline.S
@@ -1,5 +1,5 @@
/* libgcc routines for RL78
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 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 6f29fb8..ae7b2e6 100644
--- a/libgcc/config/rl78/umaxdi3.S
+++ b/libgcc/config/rl78/umaxdi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017-2024 Free Software Foundation, Inc.
+; Copyright (C) 2017-2025 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 9125d16..6aedce0 100644
--- a/libgcc/config/rl78/umindi3.S
+++ b/libgcc/config/rl78/umindi3.S
@@ -1,4 +1,4 @@
-; Copyright (C) 2017-2024 Free Software Foundation, Inc.
+; Copyright (C) 2017-2025 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/vregs.h b/libgcc/config/rl78/vregs.h
index f1bc5c2..5a7edbf 100644
--- a/libgcc/config/rl78/vregs.h
+++ b/libgcc/config/rl78/vregs.h
@@ -60,7 +60,7 @@ r23 = 0xffeef
.type \name , @function
\name:
.endm
-
+
/* Start a function in its own section, so that it
can be subject to linker garbage collection. */
.macro START_FUNC name
@@ -68,12 +68,12 @@ r23 = 0xffeef
START_ANOTHER_FUNC \name
.endm
-.macro END_ANOTHER_FUNC name
+.macro END_ANOTHER_FUNC name
.size \name , . - \name
.endm
/* End the function. Set the size. */
-.macro END_FUNC name
+.macro END_FUNC name
END_ANOTHER_FUNC \name
.popsection
.endm
diff --git a/libgcc/config/rs6000/_dd_to_kf.c b/libgcc/config/rs6000/_dd_to_kf.c
index 8744ba8..ccb1407 100644
--- a/libgcc/config/rs6000/_dd_to_kf.c
+++ b/libgcc/config/rs6000/_dd_to_kf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/_divkc3.c b/libgcc/config/rs6000/_divkc3.c
index b08e47c..056ad89 100644
--- a/libgcc/config/rs6000/_divkc3.c
+++ b/libgcc/config/rs6000/_divkc3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1989-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/_kf_to_dd.c b/libgcc/config/rs6000/_kf_to_dd.c
index c7ef25b..394a367 100644
--- a/libgcc/config/rs6000/_kf_to_dd.c
+++ b/libgcc/config/rs6000/_kf_to_dd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/_kf_to_sd.c b/libgcc/config/rs6000/_kf_to_sd.c
index 4c4f1f2..e80d2ac 100644
--- a/libgcc/config/rs6000/_kf_to_sd.c
+++ b/libgcc/config/rs6000/_kf_to_sd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/_kf_to_td.c b/libgcc/config/rs6000/_kf_to_td.c
index 526b10a..a13ed5c 100644
--- a/libgcc/config/rs6000/_kf_to_td.c
+++ b/libgcc/config/rs6000/_kf_to_td.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 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 dd758a0..5edbb3b 100644
--- a/libgcc/config/rs6000/_mulkc3.c
+++ b/libgcc/config/rs6000/_mulkc3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1989-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2025 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 f54c7c1..1e0f3ef 100644
--- a/libgcc/config/rs6000/_powikf2.c
+++ b/libgcc/config/rs6000/_powikf2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1989-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/_sd_to_kf.c b/libgcc/config/rs6000/_sd_to_kf.c
index 53a2359..92fcaec 100644
--- a/libgcc/config/rs6000/_sd_to_kf.c
+++ b/libgcc/config/rs6000/_sd_to_kf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/rs6000/_td_to_kf.c b/libgcc/config/rs6000/_td_to_kf.c
index 6bb6c11..2687f7b 100644
--- a/libgcc/config/rs6000/_td_to_kf.c
+++ b/libgcc/config/rs6000/_td_to_kf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 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 4c05347..cbbcd28 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -110,7 +110,7 @@ typedef struct {
uint pad1 [4];
vstate_t vstate;
char bumper [BUMPER_SIZE];
- int mark;
+ int mark;
} extended_context_t;
typedef struct {
@@ -160,7 +160,7 @@ ucontext_for (struct _Unwind_Context *context)
switch (*(ra + 18))
{
/* AIX 5.2 */
- case 0x835a0520: /* lwz r26,1312(r26) */
+ case 0x835a0520: /* lwz r26,1312(r26) */
return (ucontext_t *)(context->cfa + 0x70);
/* AIX 5.3 */
diff --git a/libgcc/config/rs6000/atexit.c b/libgcc/config/rs6000/atexit.c
index a0b7f9c..9a57125 100644
--- a/libgcc/config/rs6000/atexit.c
+++ b/libgcc/config/rs6000/atexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 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 2cb6e0d..dcff1ec 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 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 4d2930f..58f728a 100644
--- a/libgcc/config/rs6000/crtdbase.S
+++ b/libgcc/config/rs6000/crtdbase.S
@@ -1,6 +1,6 @@
/* Defines __gcc_unwind_dbase
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 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 05b23e8..5de55b9 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2025 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 48672b1..097a321 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2025 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 6270932..8761f61 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 1b495c9..8f0f060 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2025 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 cbe2ea3..d119765 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2025 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 d5b9660..9d05c98 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 162fc0d8..4ca3a15 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2025 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 6290c6d..a017015 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2025 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 16fb3a0..7f44918 100644
--- a/libgcc/config/rs6000/cxa_atexit.c
+++ b/libgcc/config/rs6000/cxa_atexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 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 6773ee0..7da5579 100644
--- a/libgcc/config/rs6000/cxa_finalize.c
+++ b/libgcc/config/rs6000/cxa_finalize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 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 9af56e0..5e6471e 100644
--- a/libgcc/config/rs6000/darwin-asm.h
+++ b/libgcc/config/rs6000/darwin-asm.h
@@ -1,18 +1,18 @@
/* Macro definitions to used to support 32/64-bit code in Darwin's
* assembly files.
*
- * Copyright (C) 2004-2024 Free Software Foundation, Inc.
- *
+ * Copyright (C) 2004-2025 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.
@@ -21,7 +21,7 @@
* 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/>.
- */
+ */
/* These are donated from /usr/include/architecture/ppc . */
diff --git a/libgcc/config/rs6000/darwin-crt2.c b/libgcc/config/rs6000/darwin-crt2.c
index 4cd8e3c..1081d17 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -59,10 +59,10 @@ typedef struct _Sinfo_Node {
} _Tinfo_Node ;
/* KeyMgr 3.x is the first one supporting GCC3 stuff natively. */
-#define KEYMGR_API_MAJOR_GCC3 3
+#define KEYMGR_API_MAJOR_GCC3 3
/* ... with these keys. */
#define KEYMGR_GCC3_LIVE_IMAGE_LIST 301 /* loaded images */
-#define KEYMGR_GCC3_DW2_OBJ_LIST 302 /* Dwarf2 object list */
+#define KEYMGR_GCC3_DW2_OBJ_LIST 302 /* Dwarf2 object list */
/* Node of KEYMGR_GCC3_LIVE_IMAGE_LIST. Info about each resident image. */
struct live_images {
@@ -79,15 +79,15 @@ struct live_images {
/* These routines are used only on Darwin versions before 10.2.
- Later versions have equivalent code in the system.
+ Later versions have equivalent code in the system.
Eventually, they might go away, although it might be a long time... */
-static void darwin_unwind_dyld_remove_image_hook
+static void darwin_unwind_dyld_remove_image_hook
(struct mach_header *m, unsigned long s);
-static void darwin_unwind_dyld_remove_image_hook
+static void darwin_unwind_dyld_remove_image_hook
(struct mach_header *m, unsigned long s);
extern void __darwin_gcc3_preregister_frame_info (void);
-
+
static void
darwin_unwind_dyld_add_image_hook (struct mach_header *mh, unsigned long slide)
{
diff --git a/libgcc/config/rs6000/darwin-fallback.c b/libgcc/config/rs6000/darwin-fallback.c
index 4e8a61d..cda46f4 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -72,7 +72,7 @@ interpret_libc (reg_unit gprs[32], struct _Unwind_Context *context)
/* For each supported Libc, we have to track the code flow
all the way back into the kernel.
-
+
This code is believed to support all released Libc/Libsystem builds since
Jaguar 6C115, including all the security updates. To be precise,
@@ -84,7 +84,7 @@ interpret_libc (reg_unit gprs[32], struct _Unwind_Context *context)
262~1 63~32 6I34-6I35
262~1 63~64 6L29-6L60
262.4.1~1 63~84 6L123-6R172
-
+
320~1 71~101 7B85-7D28
320~1 71~266 7F54-7F56
320~1 71~288 7F112
@@ -92,7 +92,7 @@ interpret_libc (reg_unit gprs[32], struct _Unwind_Context *context)
320.1.3~1 71.1.1~29 7H60-7H105
320.1.3~1 71.1.1~30 7H110-7H113
320.1.3~1 71.1.1~31 7H114
-
+
That's a big table! It would be insane to try to keep track of
every little detail, so we just read the code itself and do what
it would do.
@@ -101,7 +101,7 @@ interpret_libc (reg_unit gprs[32], struct _Unwind_Context *context)
for (;;)
{
uint32_t ins = *pc++;
-
+
if ((ins & 0xFC000003) == 0x48000000) /* b instruction */
{
pc += ((((int32_t) ins & 0x3FFFFFC) ^ 0x2000000) - 0x2000004) / 4;
@@ -128,7 +128,7 @@ interpret_libc (reg_unit gprs[32], struct _Unwind_Context *context)
}
if ((ins & 0xFC0007FF) == 0x7C000378) /* or, including mr */
{
- gprs [ins >> 16 & 0x1F] = (gprs [ins >> 11 & 0x1F]
+ gprs [ins >> 16 & 0x1F] = (gprs [ins >> 11 & 0x1F]
| gprs [ins >> 21 & 0x1F]);
continue;
}
@@ -248,7 +248,7 @@ interpret_libc (reg_unit gprs[32], struct _Unwind_Context *context)
#define UC_DUAL 50
#define UC_DUAL_VEC 55
-struct gcc_ucontext
+struct gcc_ucontext
{
int onstack;
sigset_t sigmask;
@@ -260,7 +260,7 @@ struct gcc_ucontext
struct gcc_mcontext32 *mcontext;
};
-struct gcc_float_vector_state
+struct gcc_float_vector_state
{
double fpregs[32];
uint32_t fpscr_pad;
@@ -332,12 +332,12 @@ handle_syscall (_Unwind_FrameState *fs, const reg_unit gprs[32],
_Unwind_Ptr new_cfa;
int i;
static _Unwind_Ptr return_addr;
-
+
/* Yay! We're in a Libc that we understand, and it's made a
system call. In Jaguar, this is a direct system call with value 103;
in Panther and Tiger it is a SYS_syscall call for system call number 184,
and in Leopard it is a direct syscall with number 184. */
-
+
if (gprs[0] == 0x67 /* SYS_SIGRETURN */)
{
uctx = (struct gcc_ucontext *) gprs[3];
@@ -387,7 +387,7 @@ handle_syscall (_Unwind_FrameState *fs, const reg_unit gprs[32],
float_vector_state = &m64->fvs;
new_cfa = m64->gpr[1][1];
-
+
set_offset (R_CR2, &m64->cr);
for (i = 0; i < 32; i++)
set_offset (i, m64->gpr[i] + 1);
@@ -396,7 +396,7 @@ handle_syscall (_Unwind_FrameState *fs, const reg_unit gprs[32],
set_offset (R_CTR, m64->ctr + 1);
if (is_vector)
set_offset (R_VRSAVE, &m64->vrsave);
-
+
/* Sometimes, srr0 points to the instruction that caused the exception,
and sometimes to the next instruction to be executed; we want
the latter. */
@@ -413,7 +413,7 @@ handle_syscall (_Unwind_FrameState *fs, const reg_unit gprs[32],
int i;
float_vector_state = &m->fvs;
-
+
new_cfa = m->gpr[1];
set_offset (R_CR2, &m->cr);
@@ -440,7 +440,7 @@ handle_syscall (_Unwind_FrameState *fs, const reg_unit gprs[32],
fs->regs.cfa_how = CFA_REG_OFFSET;
fs->regs.cfa_reg = __LIBGCC_STACK_POINTER_REGNUM__;
fs->regs.cfa_offset = new_cfa - old_cfa;;
-
+
/* The choice of column for the return address is somewhat tricky.
Fortunately, the actual choice is private to this file, and
the space it's reserved from is the GCC register space, not the
@@ -455,7 +455,7 @@ handle_syscall (_Unwind_FrameState *fs, const reg_unit gprs[32],
for (i = 0; i < 32; i++)
set_offset (32 + i, float_vector_state->fpregs + i);
set_offset (R_SPEFSCR, &float_vector_state->fpscr);
-
+
if (is_vector)
{
for (i = 0; i < 32; i++)
diff --git a/libgcc/config/rs6000/darwin-fpsave.S b/libgcc/config/rs6000/darwin-fpsave.S
index 463299b..1272aa4 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2004-2025 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 77027a6..28adb4a 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2011-2025 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 b56e294..0d3765d 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1996-2025 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 0b44dae..6638abf 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 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 a4a9983..1353970 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2004-2025 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-world.S b/libgcc/config/rs6000/darwin-world.S
index b496791..05e573c 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2004-2025 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/eabi-ci.S b/libgcc/config/rs6000/eabi-ci.S
index 636c46d..b4dd09a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 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 4d5fe65..8e3a751 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 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 02a02f5..e236e1a 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-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2025 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 635db79..8d062a0 100644
--- a/libgcc/config/rs6000/exit.h
+++ b/libgcc/config/rs6000/exit.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 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 9305753..d303682 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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-sw.c b/libgcc/config/rs6000/fixkfti-sw.c
index 1e55af4..70b66e0 100644
--- a/libgcc/config/rs6000/fixkfti-sw.c
+++ b/libgcc/config/rs6000/fixkfti-sw.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation, convert IEEE quad to 128bit signed
integer.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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-sw.c b/libgcc/config/rs6000/fixunskfti-sw.c
index 96f1462..504aa30 100644
--- a/libgcc/config/rs6000/fixunskfti-sw.c
+++ b/libgcc/config/rs6000/fixunskfti-sw.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation, convert IEEE quad to 128bit unsigned
integer.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 e4042c8..db64d19 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 5c16dbe..b318e6c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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-p10.c b/libgcc/config/rs6000/float128-p10.c
index 547341d..8f80da7 100644
--- a/libgcc/config/rs6000/float128-p10.c
+++ b/libgcc/config/rs6000/float128-p10.c
@@ -1,7 +1,7 @@
/* Automatic switching between software and hardware IEEE 128-bit
ISA 3.1 floating-point emulation for PowerPC.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Carl Love (cel@us.ibm.com)
Code is based on the main soft-fp library written by:
diff --git a/libgcc/config/rs6000/floattikf-sw.c b/libgcc/config/rs6000/floattikf-sw.c
index 218b663..a9abc7bd 100644
--- a/libgcc/config/rs6000/floattikf-sw.c
+++ b/libgcc/config/rs6000/floattikf-sw.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation, convert a 128bit signed integer to IEEE
quad.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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-sw.c b/libgcc/config/rs6000/floatuntikf-sw.c
index dcea044..b532adf 100644
--- a/libgcc/config/rs6000/floatuntikf-sw.c
+++ b/libgcc/config/rs6000/floatuntikf-sw.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation, convert a 128bit unsigned integer to IEEE
quad.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 f261bab..82eed24 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 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 ef16179..694849f 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 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 17766e4..3014221 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-2024 Free Software Foundation, Inc.
+Copyright (C) 2004-2025 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 83873d43..4636c7c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -177,7 +177,7 @@ IBM128_TYPE
__gcc_qmul (double a, double b, double c, double d)
{
double xh, xl, t, tau, u, v, w;
-
+
t = a * c; /* Highest order double term. */
if (unlikely (t == 0) /* Preserve -0. */
@@ -185,7 +185,7 @@ __gcc_qmul (double a, double b, double c, double d)
return t;
/* Sum terms of two highest orders. */
-
+
/* Use fused multiply-add to get low part of a * c. */
#ifndef __NO_FPRS__
asm ("fmsub %0,%1,%2,%3" : "=f"(tau) : "f"(a), "f"(c), "f"(t));
@@ -209,9 +209,9 @@ IBM128_TYPE
__gcc_qdiv (double a, double b, double c, double d)
{
double xh, xl, s, sigma, t, tau, u, v, w;
-
+
t = a / c; /* highest order double term */
-
+
if (unlikely (t == 0) /* Preserve -0. */
|| nonfinite (t))
return t;
@@ -230,7 +230,7 @@ __gcc_qdiv (double a, double b, double c, double d)
s = c * t; /* (s,sigma) = c*t exactly. */
w = -(-b + d * t); /* Written to get fnmsub for speed, but not
numerically necessary. */
-
+
/* Use fused multiply-add to get low part of c * t. */
#ifndef __NO_FPRS__
asm ("fmsub %0,%1,%2,%3" : "=f"(sigma) : "f"(c), "f"(t), "f"(s));
@@ -238,7 +238,7 @@ __gcc_qdiv (double a, double b, double c, double d)
sigma = fmsub (c, t, s);
#endif
v = a - s;
-
+
tau = ((v-sigma)+w)/c; /* Correction to t. */
u = t + tau;
diff --git a/libgcc/config/rs6000/libgcc-glibc.ver b/libgcc/config/rs6000/libgcc-glibc.ver
index 8a86b35..de1d94c 100644
--- a/libgcc/config/rs6000/libgcc-glibc.ver
+++ b/libgcc/config/rs6000/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# Copyright (C) 2006-2025 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 c005f49..6fd3c90 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -395,7 +395,7 @@ ppc_backchain_fallback (struct _Unwind_Context *context, void *a)
current = context->cfa;
/* If the trace CFA is not the context CFA the backtrace is done. */
- if (arg == NULL || arg->cfa != current)
+ if (arg == NULL || arg->cfa != (_Unwind_Word) current)
return;
/* Start with next address. */
diff --git a/libgcc/config/rs6000/morestack.S b/libgcc/config/rs6000/morestack.S
index 49e2fb5..9fe832d 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# Contributed by Alan Modra <amodra@gmail.com>.
# This file is part of GCC.
diff --git a/libgcc/config/rs6000/on_exit.c b/libgcc/config/rs6000/on_exit.c
index a088ae3..d08b952 100644
--- a/libgcc/config/rs6000/on_exit.c
+++ b/libgcc/config/rs6000/on_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 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/quad-float128.h b/libgcc/config/rs6000/quad-float128.h
index a569b64..ca0b23d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 0b95378..dd983b0 100644
--- a/libgcc/config/rs6000/sfp-exceptions.c
+++ b/libgcc/config/rs6000/sfp-exceptions.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 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
@@ -26,7 +26,7 @@
emulation routines for IEEE 128-bit floating point on pre-ISA 3.0 machines
without the IEEE 128-bit floating point support. */
-#ifndef __NO_FPRS__
+#ifndef __NO_FPRS__
void
__sfp_handle_exceptions (int _fex)
diff --git a/libgcc/config/rs6000/sfp-machine.h b/libgcc/config/rs6000/sfp-machine.h
index 9975fbf..f0ede0e 100644
--- a/libgcc/config/rs6000/sfp-machine.h
+++ b/libgcc/config/rs6000/sfp-machine.h
@@ -137,7 +137,7 @@ void __sfp_handle_exceptions (int);
respective FP_EX_* bit. Note, the ISA labels bits from msb to lsb,
so 22 ISA bits above is 22 bits below when counted from the lsb. */
# define FP_TRAPPING_EXCEPTIONS ((_fpscr.i << 22) & FP_EX_ALL)
-
+
# define FP_RND_NEAREST 0x0
# define FP_RND_ZERO 0x1
# define FP_RND_PINF 0x2
@@ -147,7 +147,7 @@ void __sfp_handle_exceptions (int);
# define _FP_DECL_EX \
union { unsigned long long i; double d; } _fpscr __attribute__ ((unused)) = \
{ .i = FP_RND_NEAREST }
-
+
#define FP_INIT_ROUNDMODE \
do { \
__asm__ __volatile__ ("mffs %0" \
diff --git a/libgcc/config/rs6000/sol-ci.S b/libgcc/config/rs6000/sol-ci.S
index 765a23c..9ca6bc1 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2025 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 ca48ca6..f08149c 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2025 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 183d0df..8b513bd 100644
--- a/libgcc/config/rs6000/t-darwin
+++ b/libgcc/config/rs6000/t-darwin
@@ -56,6 +56,3 @@ unwind-dw2_s.o: HOST_LIBGCC2_CFLAGS += -maltivec
unwind-dw2.o: HOST_LIBGCC2_CFLAGS += -maltivec
LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c
-
-# Build a legacy libgcc_s.1
-BUILD_LIBGCCS1 = YES
diff --git a/libgcc/config/rs6000/t-e500v1-fp b/libgcc/config/rs6000/t-e500v1-fp
index 56e95a7..f0ffc80 100644
--- a/libgcc/config/rs6000/t-e500v1-fp
+++ b/libgcc/config/rs6000/t-e500v1-fp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 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 770afc9..1b89c7a 100644
--- a/libgcc/config/rs6000/t-e500v2-fp
+++ b/libgcc/config/rs6000/t-e500v2-fp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 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 ab8f5ad..2a509a0 100644
--- a/libgcc/config/rs6000/t-freebsd
+++ b/libgcc/config/rs6000/t-freebsd
@@ -1,6 +1,6 @@
# Overrides for FreeBSD PowerPC
#
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 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 29c4a09..6333687 100644
--- a/libgcc/config/rs6000/t-slibgcc-aix
+++ b/libgcc/config/rs6000/t-slibgcc-aix
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 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 2ba9e73..afbad09 100644
--- a/libgcc/config/rs6000/tramp.S
+++ b/libgcc/config/rs6000/tramp.S
@@ -1,6 +1,6 @@
/* Special support for trampolines
*
- * Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ * Copyright (C) 1996-2025 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/trunctfkf2-sw.c b/libgcc/config/rs6000/trunctfkf2-sw.c
index eb9f8ed..57177d3 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 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 f9660c5..6a99950 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 59b60c6..ca14503 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 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 79460fe..09bc9e5 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 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 ec07d06..d4ab3a4 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 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 299fcbf..285f033 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Hartmut Penner (hpenner@de.ibm.com) and
Ulrich Weigand (uweigand@de.ibm.com).
@@ -87,7 +87,7 @@ __fixsfdi (float a1)
}
/* Number big number & +/- inf */
- if (exp >= 40) {
+ if (exp >= 40) {
/* Don't throw an exception for -1p+63 */
if (!SIGN (fl1) || exp > 40 || FRAC (fl1) != 0)
/* C99 Annex F.4 requires an "invalid" exception to be thrown. */
diff --git a/libgcc/config/s390/32/_fixtfdi.c b/libgcc/config/s390/32/_fixtfdi.c
index 2f16b42..a6b69c7 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 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 c501577..278894a 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Hartmut Penner (hpenner@de.ibm.com) and
Ulrich Weigand (uweigand@de.ibm.com).
@@ -74,7 +74,7 @@ __fixunsdfdi (double a1)
/* Negative. */
if (SIGN (dl1))
- {
+ {
/* Value is <= -1.0
C99 Annex F.4 requires an "invalid" exception to be thrown. */
if (EXPD (dl1) >= EXPONENT_BIAS)
diff --git a/libgcc/config/s390/32/_fixunssfdi.c b/libgcc/config/s390/32/_fixunssfdi.c
index 205a965..dcc0b7d 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Hartmut Penner (hpenner@de.ibm.com) and
Ulrich Weigand (uweigand@de.ibm.com).
@@ -70,7 +70,7 @@ __fixunssfdi (float a1)
/* Negative. */
if (SIGN (fl1))
- {
+ {
/* Value is <= -1.0
C99 Annex F.4 requires an "invalid" exception to be thrown. */
if (EXP (fl1) >= EXPONENT_BIAS)
@@ -89,7 +89,7 @@ __fixunssfdi (float a1)
if ((EXP (fl1) == 0xff) && (FRAC (fl1) != 0)) /* NaN */
{
/* C99 Annex F.4 requires an "invalid" exception to be thrown. */
- fexceptdiv (0.0, 0.0);
+ fexceptdiv (0.0, 0.0);
return 0x0ULL;
}
diff --git a/libgcc/config/s390/32/_fixunstfdi.c b/libgcc/config/s390/32/_fixunstfdi.c
index 04dda15..b6f8e30 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 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 7793ecf..f80bcc7 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 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 de1b027..86c55a0 100644
--- a/libgcc/config/s390/libgcc-glibc.ver
+++ b/libgcc/config/s390/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 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 88ae7c4..d14f243 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 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 c198826..fcc82f8 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 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 a61231d..8e4d825 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 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 a937179..78ab44a 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2005-2025 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 3dab982..662748d 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2005-2025 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 b691b68..95a7d3a 100644
--- a/libgcc/config/sh/crt.h
+++ b/libgcc/config/sh/crt.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 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 e6ed345..8fafc56 100644
--- a/libgcc/config/sh/crt1.S
+++ b/libgcc/config/sh/crt1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 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 9b2355f..a50dcfc 100644
--- a/libgcc/config/sh/crti.S
+++ b/libgcc/config/sh/crti.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 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 d4dec6e..d1b7c35 100644
--- a/libgcc/config/sh/crtn.S
+++ b/libgcc/config/sh/crtn.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 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 8fc30ad..8380422 100644
--- a/libgcc/config/sh/lib1funcs-4-300.S
+++ b/libgcc/config/sh/lib1funcs-4-300.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 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 ff3c401..cc826f9 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 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 ce5e3b7..11acfd5 100644
--- a/libgcc/config/sh/lib1funcs.S
+++ b/libgcc/config/sh/lib1funcs.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 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
@@ -115,7 +115,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
HIDDEN_FUNC(GLOBAL(ashiftrt_r4_31))
HIDDEN_FUNC(GLOBAL(ashiftrt_r4_32))
- .align 1
+ .align 4
GLOBAL(ashiftrt_r4_32):
GLOBAL(ashiftrt_r4_31):
rotcl r4
@@ -764,6 +764,7 @@ LOCAL(movmem_loop): /* Reached with rts */
bt GLOBAL(movmemSI52)
! done all the large groups, do the remainder
! jump to movmem+
+ .balign 4
mova GLOBAL(movmemSI4)+4,r0
add r6,r0
jmp @r0
diff --git a/libgcc/config/sh/lib1funcs.h b/libgcc/config/sh/lib1funcs.h
index 5429c7a..2840241 100644
--- a/libgcc/config/sh/lib1funcs.h
+++ b/libgcc/config/sh/lib1funcs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 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 1982075..41048e7 100644
--- a/libgcc/config/sh/libgcc-glibc.ver
+++ b/libgcc/config/sh/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 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 a7b393c..4ebd92f 100644
--- a/libgcc/config/sh/linux-atomic.c
+++ b/libgcc/config/sh/linux-atomic.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 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 405b909..bfada1c 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/sh/sfp-machine.h b/libgcc/config/sh/sfp-machine.h
new file mode 100644
index 0000000..8030c80
--- /dev/null
+++ b/libgcc/config/sh/sfp-machine.h
@@ -0,0 +1,139 @@
+/* Software floating-point machine description for SuperH.
+
+Copyright (C) 2024-2025 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/>. */
+
+#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_udiv_norm(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_B (_FP_QNANBIT_B - 1)
+#define _FP_NANFRAC_H (_FP_QNANBIT_H - 1)
+#define _FP_NANFRAC_S (_FP_QNANBIT_S - 1)
+#define _FP_NANFRAC_D (_FP_QNANBIT_D - 1), -1
+#define _FP_NANFRAC_Q (_FP_QNANBIT_Q - 1), -1, -1, -1
+
+/* The type of the result of a floating point comparison. This must
+ match __libgcc_cmp_return__ in GCC for the target. */
+typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
+#define CMPtype __gcc_CMPtype
+
+#define _FP_NANSIGN_B 0
+#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 1
+
+/* X is chosen unless one of the NaNs is sNaN. */
+# define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
+ do { \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) | \
+ _FP_FRAC_HIGH_RAW_##fs(Y)) & _FP_QNANBIT_##fs) \
+ { \
+ R##_s = _FP_NANSIGN_##fs; \
+ _FP_FRAC_SET_##wc(R,_FP_NANFRAC_##fs); \
+ } \
+ else \
+ { \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R,X); \
+ } \
+ R##_c = FP_CLS_NAN; \
+ } while (0)
+
+#ifdef __SH_FPU_ANY__
+#define _FPU_GETCW(fpscr) fpscr = __builtin_sh_get_fpscr ()
+#define _FPU_SETCW(fpscr) __builtin_sh_set_fpscr (fpscr)
+#define FP_EX_ENABLE_SHIFT 5
+#define FP_EX_CAUSE_SHIFT 10
+
+#define FP_EX_INVALID 0x0040
+#define FP_EX_DIVZERO 0x0020
+#if defined (__SH2E__)
+#define FP_EX_ALL (FP_EX_DIVZERO | FP_EX_INVALID)
+#else
+#define FP_EX_OVERFLOW 0x0010
+#define FP_EX_UNDERFLOW 0x0008
+#define FP_EX_INEXACT 0x0004
+#define FP_EX_ALL (FP_EX_DIVZERO | FP_EX_INEXACT | \
+ FP_EX_INVALID | FP_EX_OVERFLOW | FP_EX_UNDERFLOW)
+#endif
+#define _FP_DECL_EX \
+ unsigned int _fcsr __attribute__ ((unused)) = FP_RND_NEAREST
+/* Rounding modes. */
+#define FP_RND_NEAREST 0x0
+#define FP_RND_ZERO 0x1
+/* Placeholder, hardware does not have PINF/MINF modes. */
+#define FP_RND_PINF 0x2
+#define FP_RND_MINF 0x3
+#define FP_RND_MASK 3
+
+#define FP_INIT_ROUNDMODE _FPU_GETCW (_fcsr)
+#define FP_ROUNDMODE (_fcsr & FP_RND_MASK)
+#define FP_TRAPPING_EXCEPTIONS ((_fcsr >> FP_EX_ENABLE_SHIFT) & FP_EX_ALL)
+#define FP_HANDLE_EXCEPTIONS \
+ do { \
+ _fcsr &= ~(FP_EX_ALL << FP_EX_CAUSE_SHIFT); \
+ _fcsr |= _fex | (_fex << FP_EX_CAUSE_SHIFT); \
+ _FPU_SETCW (_fcsr); \
+ } while (0)
+#else
+#define FP_EX_INVALID (1 << 4)
+#define FP_EX_DIVZERO (1 << 3)
+#if !defined (__SH2E__)
+#define FP_EX_OVERFLOW (1 << 2)
+#define FP_EX_UNDERFLOW (1 << 1)
+#define FP_EX_INEXACT (1 << 0)
+#endif
+#endif
+
+#define _FP_TININESS_AFTER_ROUNDING 1
+
+#define __LITTLE_ENDIAN 1234
+#define __BIG_ENDIAN 4321
+
+#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+#define __BYTE_ORDER __BIG_ENDIAN
+#else
+#define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+/* 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/sh/t-sh b/libgcc/config/sh/t-sh
index 01ad7d8..4eb6851 100644
--- a/libgcc/config/sh/t-sh
+++ b/libgcc/config/sh/t-sh
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2024 Free Software Foundation, Inc.
+# Copyright (C) 1993-2025 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 c75a54c..195b998 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 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 163de6d..9b19564 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/sol2/gmon.c b/libgcc/config/sol2/gmon.c
index 7b30174..26c38ca 100644
--- a/libgcc/config/sol2/gmon.c
+++ b/libgcc/config/sol2/gmon.c
@@ -234,7 +234,7 @@ asm(".globl _mcount\n"
" ret\n");
#elif defined __x86_64__
/* See GLIBC for additional information about this technique. */
-asm(".globl _mcount\n"
+asm(".globl _mcount\n"
" .type _mcount, @function\n"
"_mcount:\n"
/* The compiler calls _mcount after the prologue, and does not
@@ -289,7 +289,7 @@ asm(".globl _mcount\n"
3) if builtin_return_address worked, this could be portable.
However, it would really have to be optimized for arguments of 0
and 1 and do something like what we have here in order to avoid the
- trap per function call performance hit.
+ trap per function call performance hit.
4) the atexit and monsetup calls prevent this from simply
being a leaf routine that doesn't do a "save" (and would thus have
access to %o7 and %i7 directly) but the call to write() at the end
diff --git a/libgcc/config/sol2/t-sol2 b/libgcc/config/sol2/t-sol2
index e7494c5..d51f50d 100644
--- a/libgcc/config/sol2/t-sol2
+++ b/libgcc/config/sol2/t-sol2
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 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 a67ef20..6c718e8 100644
--- a/libgcc/config/sparc/crtfastmath.c
+++ b/libgcc/config/sparc/crtfastmath.c
@@ -1,17 +1,17 @@
/*
- * Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2025 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
* 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.
diff --git a/libgcc/config/sparc/crti.S b/libgcc/config/sparc/crti.S
index cd2e078..07c79d1 100644
--- a/libgcc/config/sparc/crti.S
+++ b/libgcc/config/sparc/crti.S
@@ -1,6 +1,6 @@
! crti.S for SPARC
-! Copyright (C) 1992-2024 Free Software Foundation, Inc.
+! Copyright (C) 1992-2025 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 39ea418..97a4f4f 100644
--- a/libgcc/config/sparc/crtn.S
+++ b/libgcc/config/sparc/crtn.S
@@ -1,6 +1,6 @@
! crtn.S for SPARC
-! Copyright (C) 1992-2024 Free Software Foundation, Inc.
+! Copyright (C) 1992-2025 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 7cbfe5d..f010de1 100644
--- a/libgcc/config/sparc/libgcc-glibc.ver
+++ b/libgcc/config/sparc/libgcc-glibc.ver
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 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 f947aa8..88fba3b 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/sparc/sol2-unwind.h b/libgcc/config/sparc/sol2-unwind.h
index c913d7e..c20f755 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/stormy16/lib2funcs.c b/libgcc/config/stormy16/lib2funcs.c
index 4c56dc5..f4514d1 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -179,7 +179,7 @@ SItype
__ashlsi3 (SItype a, SItype b)
{
word_type i;
-
+
if (b & 16)
a <<= 16;
if (b & 8)
@@ -195,7 +195,7 @@ SItype
__ashrsi3 (SItype a, SItype b)
{
word_type i;
-
+
if (b & 16)
a >>= 16;
if (b & 8)
@@ -211,7 +211,7 @@ USItype
__lshrsi3 (USItype a, USItype b)
{
word_type i;
-
+
if (b & 16)
a >>= 16;
if (b & 8)
diff --git a/libgcc/config/stormy16/t-stormy16 b/libgcc/config/stormy16/t-stormy16
index 92dfcd0..55b327e 100644
--- a/libgcc/config/stormy16/t-stormy16
+++ b/libgcc/config/stormy16/t-stormy16
@@ -1,6 +1,6 @@
# -*- makefile -*-
#
-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# Copyright (C) 2001-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/t-darwin-libgccs1 b/libgcc/config/t-darwin-libgccs1
new file mode 100644
index 0000000..b88b1a5
--- /dev/null
+++ b/libgcc/config/t-darwin-libgccs1
@@ -0,0 +1,3 @@
+
+# Build a legacy libgcc_s.1
+BUILD_LIBGCCS1 = YES
diff --git a/libgcc/config/t-darwin-min-11 b/libgcc/config/t-darwin-min-11
new file mode 100644
index 0000000..4009d41
--- /dev/null
+++ b/libgcc/config/t-darwin-min-11
@@ -0,0 +1,3 @@
+# Support building with -mmacosx-version-min back to macOS 11.
+DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=11
+DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=11
diff --git a/libgcc/config/t-hardfp b/libgcc/config/t-hardfp
index 239298a..6621202 100644
--- a/libgcc/config/t-hardfp
+++ b/libgcc/config/t-hardfp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 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 79897c7..fe9d13a 100644
--- a/libgcc/config/t-hardfp-sfdf
+++ b/libgcc/config/t-hardfp-sfdf
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 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 715aed7..a269adf 100644
--- a/libgcc/config/t-libunwind-elf
+++ b/libgcc/config/t-libunwind-elf
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc
index e8e6c7d..68cb3b3 100644
--- a/libgcc/config/t-slibgcc
+++ b/libgcc/config/t-slibgcc
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# Copyright (C) 2001-2025 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 32521bb..6c2bb59 100644
--- a/libgcc/config/t-slibgcc-fuchsia
+++ b/libgcc/config/t-slibgcc-fuchsia
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 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 03a40f8..99ec978 100644
--- a/libgcc/config/t-slibgcc-libgcc
+++ b/libgcc/config/t-slibgcc-libgcc
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/config/t-softfp b/libgcc/config/t-softfp
index 521e768..b352dfa 100644
--- a/libgcc/config/t-softfp
+++ b/libgcc/config/t-softfp
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# Copyright (C) 2006-2025 Free Software Foundation, Inc.
# This file is part of GCC.
@@ -67,13 +67,11 @@ softfp_floatint_funcs = fix$(m)$(i) fixuns$(m)$(i) \
softfp_floatbitint_funcs = fix$(m)bitint floatbitint$(m)
softfp_bid_list :=
ifeq ($(decimal_float),yes)
-ifeq ($(enable_decimal_float),bid)
softfp_bid_list += bitintpow10 \
$(foreach m,sd dd td,fix$(m)bitint floatbitint$(m) \
fix$(m)ti fixuns$(m)ti \
floatti$(m) floatunti$(m))
endif
-endif
softfp_func_list := \
$(foreach m,$(softfp_float_modes), \
diff --git a/libgcc/config/unwind-dw2-fde-darwin.c b/libgcc/config/unwind-dw2-fde-darwin.c
index 9f692d8..e82b251 100644
--- a/libgcc/config/unwind-dw2-fde-darwin.c
+++ b/libgcc/config/unwind-dw2-fde-darwin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/v850/lib1funcs.S b/libgcc/config/v850/lib1funcs.S
index 49e4814..36e6af9 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 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 1b7b4de..32170fb 100644
--- a/libgcc/config/vax/lib1funcs.S
+++ b/libgcc/config/vax/lib1funcs.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 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 f81026d..474f132 100644
--- a/libgcc/config/visium/crti.S
+++ b/libgcc/config/visium/crti.S
@@ -1,5 +1,5 @@
/* crti.S for Visium.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 d4bfb75..5936792 100644
--- a/libgcc/config/visium/crtn.S
+++ b/libgcc/config/visium/crtn.S
@@ -1,5 +1,5 @@
/* crtn.S for Visium.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 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 f598aab..0197716 100644
--- a/libgcc/config/visium/divdi3.c
+++ b/libgcc/config/visium/divdi3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 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 76c660f..41aecf4 100644
--- a/libgcc/config/visium/lib2funcs.c
+++ b/libgcc/config/visium/lib2funcs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/visium/memcpy.c b/libgcc/config/visium/memcpy.c
index 265b0d6..9392ccd 100644
--- a/libgcc/config/visium/memcpy.c
+++ b/libgcc/config/visium/memcpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -416,7 +416,7 @@ do { \
static inline void
-__int_memcpy (void *__restrict s1, const void *__restrict s2, size_t n)
+__int_memcpy (void *__restrict s1, const void *__restrict s2, size_t n)
{
int value = n;
int loop_var;
@@ -556,7 +556,7 @@ __int_memcpy (void *__restrict s1, const void *__restrict s2, size_t n)
}
static inline void
-__shrt_int_memcpy (void *__restrict s1, const void *__restrict s2, size_t n)
+__shrt_int_memcpy (void *__restrict s1, const void *__restrict s2, size_t n)
{
int value = n;
int loop_var;
@@ -697,7 +697,7 @@ __shrt_int_memcpy (void *__restrict s1, const void *__restrict s2, size_t n)
static inline void
-__byte_memcpy (void *__restrict s1, const void *__restrict s2, size_t n)
+__byte_memcpy (void *__restrict s1, const void *__restrict s2, size_t n)
{
int value = n;
int loop_var;
diff --git a/libgcc/config/visium/memcpy.h b/libgcc/config/visium/memcpy.h
index 813d70b..773fa70 100644
--- a/libgcc/config/visium/memcpy.h
+++ b/libgcc/config/visium/memcpy.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 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 d64f46f..ff744ab 100644
--- a/libgcc/config/visium/memset.c
+++ b/libgcc/config/visium/memset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 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 de7b90a..74a08c1 100644
--- a/libgcc/config/visium/memset.h
+++ b/libgcc/config/visium/memset.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 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 7fd2aa5..32a051a 100644
--- a/libgcc/config/visium/moddi3.c
+++ b/libgcc/config/visium/moddi3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 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 71f0d01..907f0b7 100644
--- a/libgcc/config/visium/set_trampoline_parity.c
+++ b/libgcc/config/visium/set_trampoline_parity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 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 a41930b..02b771e 100644
--- a/libgcc/config/visium/t-visium
+++ b/libgcc/config/visium/t-visium
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 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 24b781d..a1d5b10 100644
--- a/libgcc/config/visium/udivdi3.c
+++ b/libgcc/config/visium/udivdi3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 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 2951c377..f5f21d8 100644
--- a/libgcc/config/visium/udivmoddi4.c
+++ b/libgcc/config/visium/udivmoddi4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 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 cd7d91ef..3abb4a4 100644
--- a/libgcc/config/visium/umoddi3.c
+++ b/libgcc/config/visium/umoddi3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 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 ff4c00f..a25fd2f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GCC.
diff --git a/libgcc/config/xtensa/crti.S b/libgcc/config/xtensa/crti.S
index cf34b1a..dacdc7c 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 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 2c059f3..86bb6dc 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 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 7dc4c59..b0b09d9 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 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 e1cc398..a922f6f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 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 e87011b..9447fb6 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 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 07af346..1f6aa78 100644
--- a/libgcc/config/xtensa/lib2funcs.S
+++ b/libgcc/config/xtensa/lib2funcs.S
@@ -1,5 +1,5 @@
/* Assembly functions for libgcc2.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 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 39d2443..2e084bf 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 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 21106f3..9a09ce5 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -278,7 +278,7 @@ extract_cie_info (const struct dwarf_cie *cie, struct _Unwind_Context *context,
else if (aug[0] == 'P')
{
_Unwind_Ptr personality;
-
+
p = read_encoded_value (context, *p, p + 1, &personality);
fs->personality = (_Unwind_Personality_Fn) personality;
aug += 1;
diff --git a/libgcc/config/xtensa/unwind-dw2-xtensa.h b/libgcc/config/xtensa/unwind-dw2-xtensa.h
index 1bc59fe..c5c1f97 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/config/xtensa/xtensa-config-builtin.h b/libgcc/config/xtensa/xtensa-config-builtin.h
index b6d9962..d847e52 100644
--- a/libgcc/config/xtensa/xtensa-config-builtin.h
+++ b/libgcc/config/xtensa/xtensa-config-builtin.h
@@ -1,5 +1,5 @@
/* Xtensa configuration settings.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/configure b/libgcc/configure
index a69d314..1841833 100755
--- a/libgcc/configure
+++ b/libgcc/configure
@@ -587,6 +587,7 @@ ac_includes_default='/* none */'
ac_subst_vars='LTLIBOBJS
LIBOBJS
md_unwind_header
+md_unwind_def_header
unwind_header
enable_execute_stack
asm_hidden_op
@@ -5294,7 +5295,8 @@ fi
if test x"$enable_offload_targets" != x; then
- extra_parts="${extra_parts} crtoffloadbegin.o crtoffloadend.o crtoffloadtable.o"
+ extra_parts="${extra_parts} crtoffloadbegin.o crtoffloadend.o"
+ extra_parts="${extra_parts} crtoffloadtable.o crtoffloadtableS.o"
fi
# Check if Solaris/x86 linker supports ZERO terminator unwind entries.
@@ -5786,6 +5788,7 @@ fi
+
# We need multilib support.
ac_config_files="$ac_config_files Makefile"
diff --git a/libgcc/configure.ac b/libgcc/configure.ac
index c2749fe..85e4f1b 100644
--- a/libgcc/configure.ac
+++ b/libgcc/configure.ac
@@ -481,7 +481,8 @@ AC_SUBST(accel_dir_suffix)
AC_SUBST(real_host_noncanonical)
if test x"$enable_offload_targets" != x; then
- extra_parts="${extra_parts} crtoffloadbegin.o crtoffloadend.o crtoffloadtable.o"
+ extra_parts="${extra_parts} crtoffloadbegin.o crtoffloadend.o"
+ extra_parts="${extra_parts} crtoffloadtable.o crtoffloadtableS.o"
fi
# Check if Solaris/x86 linker supports ZERO terminator unwind entries.
@@ -727,6 +728,7 @@ AC_SUBST(extra_parts)
AC_SUBST(asm_hidden_op)
AC_SUBST(enable_execute_stack)
AC_SUBST(unwind_header)
+AC_SUBST(md_unwind_def_header)
AC_SUBST(md_unwind_header)
AC_SUBST(sfp_machine_header)
AC_SUBST(thread_header)
diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
index 38d3859..b9767cd 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
Contributed by Ron Guilmette (rfg@monkeys.com).
This file is part of GCC.
@@ -84,7 +84,7 @@ call_ ## FUNC (void) \
(defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__))
#define BSD_DL_ITERATE_PHDR_AVAILABLE
#endif
-
+
#if defined(OBJECT_FORMAT_ELF) \
&& !defined(OBJECT_FORMAT_FLAT) \
&& defined(HAVE_LD_EH_FRAME_HDR) \
diff --git a/libgcc/dfp-bit.c b/libgcc/dfp-bit.c
index 4f012ac..17d8df9 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -181,7 +181,7 @@ d32_compare_op (dfp_binary_func op, _Decimal32 arg_a, _Decimal32 arg_b)
b32.c = arg_b;
decSingleToWider (&a32.f, &a);
decSingleToWider (&b32.f, &b);
- return dfp_compare_op (op, a, b);
+ return dfp_compare_op (op, a, b);
}
#else
/* decFloat comparisons are supported for decDouble (64 bits) and
@@ -193,7 +193,7 @@ dnn_compare_op (dfp_binary_func op, DFP_C_TYPE arg_a, DFP_C_TYPE arg_b)
a.c = arg_a;
b.c = arg_b;
- return dfp_compare_op (op, a.f, b.f);
+ return dfp_compare_op (op, a.f, b.f);
}
#endif
@@ -624,7 +624,7 @@ DFP_TO_BFP (DFP_C_TYPE f)
return STR_TO_BFP (buf, NULL);
}
#endif
-
+
#if defined (L_sf_to_sd) || defined (L_sf_to_dd) || defined (L_sf_to_td) \
|| defined (L_df_to_sd) || defined (L_df_to_dd) || defined (L_df_to_td) \
|| defined (L_kf_to_sd) || defined (L_kf_to_dd) || defined (L_kf_to_td) \
diff --git a/libgcc/dfp-bit.h b/libgcc/dfp-bit.h
index b3048f6..0468ea1 100644
--- a/libgcc/dfp-bit.h
+++ b/libgcc/dfp-bit.h
@@ -1,5 +1,5 @@
/* Header file for dfp-bit.c.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -57,7 +57,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
IEEE_TYPE: the corresponding (encoded) IEEE754 type;
(eg decimal32)
-
+
TO_INTERNAL: the name of the decNumber function to convert an
encoded value into the decNumber internal representation;
@@ -257,7 +257,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
BFP_VIA_TYPE: Type to which to cast a variable of BPF_TYPE for a
call to sprintf.
-
+
STR_TO_BFP: The function to read the value from a string. */
#if BFP_KIND == 1
@@ -411,7 +411,7 @@ extern _Float128 __strtoieee128 (const char *, char **);
#elif WIDTH_TO == 128
#define DFP_TO_DFP DPD_BID_NAME(__dpd_extendsdtd2,__bid_extendsdtd2)
#endif
-#elif WIDTH == 64
+#elif WIDTH == 64
#if WIDTH_TO == 32
#define DFP_TO_DFP DPD_BID_NAME(__dpd_truncddsd2,__bid_truncddsd2)
#elif WIDTH_TO == 128
diff --git a/libgcc/divmod.c b/libgcc/divmod.c
index d5db2c1..ee5b5c5 100644
--- a/libgcc/divmod.c
+++ b/libgcc/divmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/emutls.c b/libgcc/emutls.c
index 2313d0a..ee41092 100644
--- a/libgcc/emutls.c
+++ b/libgcc/emutls.c
@@ -1,5 +1,5 @@
/* TLS emulation.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 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 58ef493..08a0d72 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/find-symver.awk b/libgcc/find-symver.awk
index 06ceea1..b134d5b 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/libgcc/fixed-bit.c b/libgcc/fixed-bit.c
index 393a3e7..2f41551 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/fixed-bit.h b/libgcc/fixed-bit.h
index ab0916f..fc3b4b9 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/fp-bit.c b/libgcc/fp-bit.c
index 63713ba..e0c447a 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-2024 Free Software Foundation, Inc.
+ for targets without hardware floating point.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -137,7 +137,7 @@ makenan (void)
{
#ifdef TFLOAT
return & __thenan_tf;
-#elif defined FLOAT
+#elif defined FLOAT
return & __thenan_sf;
#else
return & __thenan_df;
@@ -168,7 +168,7 @@ iszero (const fp_number_type * x)
return x->class == CLASS_ZERO;
}
-INLINE
+INLINE
static void
flip_sign ( fp_number_type * x)
{
@@ -443,11 +443,11 @@ unpack_d (FLO_union_type * src, fp_number_type * dst)
#endif
src = &swapped;
#endif
-
+
#if defined TFLOAT && defined HALFFRACBITS
{
halffractype high, low;
-
+
high = src->value_raw >> HALFSHIFT;
low = src->value_raw & (((fractype)1 << HALFSHIFT) - 1);
@@ -823,11 +823,11 @@ _fpmul_parts ( fp_number_type * a,
x >>= 1;
}
}
-#elif defined(FLOAT)
+#elif defined(FLOAT)
/* Multiplying two USIs to get a UDI, we're safe. */
{
UDItype answer = (UDItype)a->fraction.ll * (UDItype)b->fraction.ll;
-
+
high = answer >> BITS_PER_SI;
low = answer;
}
@@ -1316,7 +1316,7 @@ si_to_float (SItype arg_a)
USItype uarg;
int shift;
in.normal_exp = FRACBITS + NGARDS;
- if (in.sign)
+ if (in.sign)
{
/* Special case for minint, since there is no +ve integer
representation for it */
@@ -1458,7 +1458,7 @@ negate (FLO_type arg_a)
SFtype
__make_fp(fp_class_type class,
unsigned int sign,
- int exp,
+ int exp,
USItype frac)
{
fp_number_type in;
@@ -1572,7 +1572,7 @@ df_to_tf (DFtype arg_a)
TFtype
__make_tp(fp_class_type class,
unsigned int sign,
- int exp,
+ int exp,
UTItype frac)
{
fp_number_type in;
diff --git a/libgcc/fp-bit.h b/libgcc/fp-bit.h
index 9969729..4b191ec 100644
--- a/libgcc/fp-bit.h
+++ b/libgcc/fp-bit.h
@@ -1,5 +1,5 @@
/* Header file for fp-bit.c. */
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/gbl-ctors.h b/libgcc/gbl-ctors.h
index 4a03a1e..114294f 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 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 8ec4937..ac8b7bd 100644
--- a/libgcc/gcov.h
+++ b/libgcc/gcov.h
@@ -1,5 +1,5 @@
/* GCOV interface routines.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 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 2b8b267..c4f5e84 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by Ian Lance Taylor <iant@google.com>.
This file is part of GCC.
diff --git a/libgcc/generic-morestack.c b/libgcc/generic-morestack.c
index 4d6b90b..ed94bfc 100644
--- a/libgcc/generic-morestack.c
+++ b/libgcc/generic-morestack.c
@@ -1,5 +1,5 @@
/* Library support for -fsplit-stack. */
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by Ian Lance Taylor <iant@google.com>.
This file is part of GCC.
diff --git a/libgcc/generic-morestack.h b/libgcc/generic-morestack.h
index 7008da8..c077b38 100644
--- a/libgcc/generic-morestack.h
+++ b/libgcc/generic-morestack.h
@@ -1,5 +1,5 @@
/* Library support for -fsplit-stack. */
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 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 82e8f9f..eeb84f3 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -44,6 +44,21 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
# endif
#endif
+#ifdef __has_attribute
+# if __has_attribute(__always_inline__)
+# define __GTHREAD_ALWAYS_INLINE __attribute__((__always_inline__))
+# endif
+#endif
+#ifndef __GTHREAD_ALWAYS_INLINE
+# define __GTHREAD_ALWAYS_INLINE
+#endif
+
+#ifdef __cplusplus
+# define __GTHREAD_INLINE inline __GTHREAD_ALWAYS_INLINE
+#else
+# define __GTHREAD_INLINE static inline
+#endif
+
typedef pthread_t __gthread_t;
typedef pthread_key_t __gthread_key_t;
typedef pthread_once_t __gthread_once_t;
@@ -182,22 +197,30 @@ __gthrw(pthread_setschedparam)
#if defined(__FreeBSD__) || (defined(__sun) && defined(__svr4__))
-static volatile int __gthread_active = -1;
+#pragma GCC visibility push(hidden)
+__GTHREAD_INLINE volatile int *
+__gthread_active (void)
+{
+ static volatile int __gthread_active_var = -1;
+ return &__gthread_active_var;
+}
+#pragma GCC visibility pop
-static void
+__GTHREAD_INLINE void
__gthread_trigger (void)
{
- __gthread_active = 1;
+ *__gthread_active () = 1;
}
-static inline int
+#pragma GCC visibility push(hidden)
+__GTHREAD_INLINE int
__gthread_active_p (void)
{
static pthread_mutex_t __gthread_active_mutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_once_t __gthread_active_once = PTHREAD_ONCE_INIT;
/* Avoid reading __gthread_active twice on the main code path. */
- int __gthread_active_latest_value = __gthread_active;
+ int __gthread_active_latest_value = *__gthread_active ();
/* This test is not protected to avoid taking a lock on the main code
path so every update of __gthread_active in a threaded program must
@@ -214,14 +237,15 @@ __gthread_active_p (void)
}
/* Make sure we'll never enter this block again. */
- if (__gthread_active < 0)
- __gthread_active = 0;
+ if (*__gthread_active () < 0)
+ *__gthread_active () = 0;
- __gthread_active_latest_value = __gthread_active;
+ __gthread_active_latest_value = *__gthread_active ();
}
return __gthread_active_latest_value != 0;
}
+#pragma GCC visibility pop
#else /* neither FreeBSD nor Solaris */
@@ -257,13 +281,15 @@ __gthrw2(__gthrw_(__pthread_key_create),
# define GTHR_ACTIVE_PROXY __gthrw_(pthread_cancel)
#endif
-static inline int
+#pragma GCC visibility push(hidden)
+__GTHREAD_INLINE int
__gthread_active_p (void)
{
static void *const __gthread_active_ptr
= __extension__ (void *) &GTHR_ACTIVE_PROXY;
return __gthread_active_ptr != 0;
}
+#pragma GCC visibility pop
#endif /* FreeBSD or Solaris */
@@ -288,20 +314,27 @@ __gthread_active_p (void)
#if defined(__hppa__) && defined(__hpux__)
-static volatile int __gthread_active = -1;
+#pragma GCC visibility push(hidden)
+__GTHREAD_INLINE volatile int *
+__gthread_active (void)
+{
+ static volatile int __gthread_active_var = -1;
+ return &__gthread_active_var;
+}
+#pragma GCC visibility pop
-static inline int
+__GTHREAD_INLINE int
__gthread_active_p (void)
{
/* Avoid reading __gthread_active twice on the main code path. */
- int __gthread_active_latest_value = __gthread_active;
+ int __gthread_active_latest_value = *__gthread_active ();
size_t __s;
if (__builtin_expect (__gthread_active_latest_value < 0, 0))
{
pthread_default_stacksize_np (0, &__s);
- __gthread_active = __s ? 1 : 0;
- __gthread_active_latest_value = __gthread_active;
+ *__gthread_active () = __s ? 1 : 0;
+ __gthread_active_latest_value = *__gthread_active ();
}
return __gthread_active_latest_value != 0;
@@ -309,7 +342,7 @@ __gthread_active_p (void)
#else /* not hppa-hpux */
-static inline int
+__GTHREAD_INLINE int
__gthread_active_p (void)
{
return 1;
@@ -669,44 +702,44 @@ __gthread_objc_condition_signal (objc_condition_t condition)
#else /* _LIBOBJC */
-static inline int
+__GTHREAD_INLINE int
__gthread_create (__gthread_t *__threadid, void *(*__func) (void*),
void *__args)
{
return __gthrw_(pthread_create) (__threadid, NULL, __func, __args);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_join (__gthread_t __threadid, void **__value_ptr)
{
return __gthrw_(pthread_join) (__threadid, __value_ptr);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_detach (__gthread_t __threadid)
{
return __gthrw_(pthread_detach) (__threadid);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_equal (__gthread_t __t1, __gthread_t __t2)
{
return __gthrw_(pthread_equal) (__t1, __t2);
}
-static inline __gthread_t
+__GTHREAD_INLINE __gthread_t
__gthread_self (void)
{
return __gthrw_(pthread_self) ();
}
-static inline int
+__GTHREAD_INLINE int
__gthread_yield (void)
{
return __gthrw_(sched_yield) ();
}
-static inline int
+__GTHREAD_INLINE int
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
{
if (__gthread_active_p ())
@@ -715,38 +748,38 @@ __gthread_once (__gthread_once_t *__once, void (*__func) (void))
return -1;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
{
return __gthrw_(pthread_key_create) (__key, __dtor);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_key_delete (__gthread_key_t __key)
{
return __gthrw_(pthread_key_delete) (__key);
}
-static inline void *
+__GTHREAD_INLINE void *
__gthread_getspecific (__gthread_key_t __key)
{
return __gthrw_(pthread_getspecific) (__key);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_setspecific (__gthread_key_t __key, const void *__ptr)
{
return __gthrw_(pthread_setspecific) (__key, __ptr);
}
-static inline void
+__GTHREAD_INLINE void
__gthread_mutex_init_function (__gthread_mutex_t *__mutex)
{
if (__gthread_active_p ())
__gthrw_(pthread_mutex_init) (__mutex, NULL);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_mutex_destroy (__gthread_mutex_t *__mutex)
{
if (__gthread_active_p ())
@@ -755,7 +788,7 @@ __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_mutex_lock (__gthread_mutex_t *__mutex)
{
if (__gthread_active_p ())
@@ -764,7 +797,7 @@ __gthread_mutex_lock (__gthread_mutex_t *__mutex)
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_mutex_trylock (__gthread_mutex_t *__mutex)
{
if (__gthread_active_p ())
@@ -774,7 +807,7 @@ __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
}
#if _GTHREAD_USE_MUTEX_TIMEDLOCK
-static inline int
+__GTHREAD_INLINE int
__gthread_mutex_timedlock (__gthread_mutex_t *__mutex,
const __gthread_time_t *__abs_timeout)
{
@@ -785,7 +818,7 @@ __gthread_mutex_timedlock (__gthread_mutex_t *__mutex,
}
#endif
-static inline int
+__GTHREAD_INLINE int
__gthread_mutex_unlock (__gthread_mutex_t *__mutex)
{
if (__gthread_active_p ())
@@ -796,7 +829,7 @@ __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
#if !defined( PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP) \
|| defined(_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC)
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
{
if (__gthread_active_p ())
@@ -818,20 +851,20 @@ __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
}
#endif
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{
return __gthread_mutex_lock (__mutex);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{
return __gthread_mutex_trylock (__mutex);
}
#if _GTHREAD_USE_MUTEX_TIMEDLOCK
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex,
const __gthread_time_t *__abs_timeout)
{
@@ -839,20 +872,20 @@ __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex,
}
#endif
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{
return __gthread_mutex_unlock (__mutex);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
{
return __gthread_mutex_destroy (__mutex);
}
#ifdef _GTHREAD_USE_COND_INIT_FUNC
-static inline void
+__GTHREAD_INLINE void
__gthread_cond_init_function (__gthread_cond_t *__cond)
{
if (__gthread_active_p ())
@@ -860,46 +893,46 @@ __gthread_cond_init_function (__gthread_cond_t *__cond)
}
#endif
-static inline int
+__GTHREAD_INLINE int
__gthread_cond_broadcast (__gthread_cond_t *__cond)
{
return __gthrw_(pthread_cond_broadcast) (__cond);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_cond_signal (__gthread_cond_t *__cond)
{
return __gthrw_(pthread_cond_signal) (__cond);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex)
{
return __gthrw_(pthread_cond_wait) (__cond, __mutex);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex,
const __gthread_time_t *__abs_timeout)
{
return __gthrw_(pthread_cond_timedwait) (__cond, __mutex, __abs_timeout);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_cond_wait_recursive (__gthread_cond_t *__cond,
__gthread_recursive_mutex_t *__mutex)
{
return __gthread_cond_wait (__cond, __mutex);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_cond_destroy (__gthread_cond_t* __cond)
{
return __gthrw_(pthread_cond_destroy) (__cond);
}
#ifndef __cplusplus
-static inline int
+__GTHREAD_INLINE int
__gthread_rwlock_rdlock (__gthread_rwlock_t *__rwlock)
{
if (__gthread_active_p ())
@@ -908,7 +941,7 @@ __gthread_rwlock_rdlock (__gthread_rwlock_t *__rwlock)
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_rwlock_tryrdlock (__gthread_rwlock_t *__rwlock)
{
if (__gthread_active_p ())
@@ -917,7 +950,7 @@ __gthread_rwlock_tryrdlock (__gthread_rwlock_t *__rwlock)
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_rwlock_wrlock (__gthread_rwlock_t *__rwlock)
{
if (__gthread_active_p ())
@@ -926,7 +959,7 @@ __gthread_rwlock_wrlock (__gthread_rwlock_t *__rwlock)
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_rwlock_trywrlock (__gthread_rwlock_t *__rwlock)
{
if (__gthread_active_p ())
@@ -935,7 +968,7 @@ __gthread_rwlock_trywrlock (__gthread_rwlock_t *__rwlock)
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_rwlock_unlock (__gthread_rwlock_t *__rwlock)
{
if (__gthread_active_p ())
@@ -947,4 +980,7 @@ __gthread_rwlock_unlock (__gthread_rwlock_t *__rwlock)
#endif /* _LIBOBJC */
+#undef __GTHREAD_INLINE
+#undef __GTHREAD_ALWAYS_INLINE
+
#endif /* ! GCC_GTHR_POSIX_H */
diff --git a/libgcc/gthr-single.h b/libgcc/gthr-single.h
index 8ee6b17..ed637ad 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -38,6 +38,21 @@ typedef int __gthread_recursive_mutex_t;
#define __GTHREAD_MUTEX_INIT_FUNCTION(mx) do {} while (0)
#define __GTHREAD_RECURSIVE_MUTEX_INIT 0
+#ifdef __has_attribute
+# if __has_attribute(__always_inline__)
+# define __GTHREAD_ALWAYS_INLINE __attribute__((__always_inline__))
+# endif
+#endif
+#ifndef __GTHREAD_ALWAYS_INLINE
+# define __GTHREAD_ALWAYS_INLINE
+#endif
+
+#ifdef __cplusplus
+# define __GTHREAD_INLINE inline __GTHREAD_ALWAYS_INLINE
+#else
+# define __GTHREAD_INLINE static inline
+#endif
+
#define UNUSED __attribute__((__unused__))
#ifdef _LIBOBJC
@@ -207,85 +222,85 @@ __gthread_objc_condition_signal (objc_condition_t condition UNUSED)
#else /* _LIBOBJC */
-static inline int
+__GTHREAD_INLINE int
__gthread_active_p (void)
{
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_once (__gthread_once_t *__once UNUSED, void (*__func) (void) UNUSED)
{
return 0;
}
-static inline int UNUSED
+__GTHREAD_INLINE int UNUSED
__gthread_key_create (__gthread_key_t *__key UNUSED, void (*__func) (void *) UNUSED)
{
return 0;
}
-static int UNUSED
+__GTHREAD_INLINE int UNUSED
__gthread_key_delete (__gthread_key_t __key UNUSED)
{
return 0;
}
-static inline void *
+__GTHREAD_INLINE void *
__gthread_getspecific (__gthread_key_t __key UNUSED)
{
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_setspecific (__gthread_key_t __key UNUSED, const void *__v UNUSED)
{
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_mutex_destroy (__gthread_mutex_t *__mutex UNUSED)
{
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_mutex_lock (__gthread_mutex_t *__mutex UNUSED)
{
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_mutex_trylock (__gthread_mutex_t *__mutex UNUSED)
{
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_mutex_unlock (__gthread_mutex_t *__mutex UNUSED)
{
return 0;
}
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{
return __gthread_mutex_lock (__mutex);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{
return __gthread_mutex_trylock (__mutex);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{
return __gthread_mutex_unlock (__mutex);
}
-static inline int
+__GTHREAD_INLINE int
__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
{
return __gthread_mutex_destroy (__mutex);
@@ -294,5 +309,7 @@ __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
#endif /* _LIBOBJC */
#undef UNUSED
+#undef __GTHREAD_INLINE
+#undef __GTHREAD_ALWAYS_INLINE
#endif /* ! GCC_GTHR_SINGLE_H */
diff --git a/libgcc/gthr.h b/libgcc/gthr.h
index 33c2d8f..5574179 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/hardcfr.c b/libgcc/hardcfr.c
index 4f70dc5..1390412 100644
--- a/libgcc/hardcfr.c
+++ b/libgcc/hardcfr.c
@@ -1,5 +1,5 @@
/* Control flow redundancy hardening
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
Contributed by Alexandre Oliva <oliva@adacore.com>
This file is part of GCC.
diff --git a/libgcc/libgcc-std.ver.in b/libgcc/libgcc-std.ver.in
index ac8f661..3b3b5e6 100644
--- a/libgcc/libgcc-std.ver.in
+++ b/libgcc/libgcc-std.ver.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2024 Free Software Foundation, Inc.
+# Copyright (C) 2000-2025 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
@@ -1947,12 +1947,6 @@ GCC_7.0.0 {
%inherit GCC_14.0.0 GCC_7.0.0
GCC_14.0.0 {
- __PFX__mulbitint3
- __PFX__divmodbitint4
- __PFX__fixsfbitint
- __PFX__fixdfbitint
- __PFX__floatbitintsf
- __PFX__floatbitintdf
__PFX__hardcfr_check
__PFX__strub_enter
__PFX__strub_update
diff --git a/libgcc/libgcc2.c b/libgcc/libgcc2.c
index 3fcb85c..faefff3 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -1333,7 +1333,7 @@ bitint_reduce_prec (const UBILtype **p, SItype prec)
if (prec >= -1)
return -2;
#if __LIBGCC_BITINT_ORDER__ == __ORDER_BIG_ENDIAN__
- ++p;
+ ++*p;
#else
--i;
#endif
@@ -1347,7 +1347,7 @@ bitint_reduce_prec (const UBILtype **p, SItype prec)
if (prec >= -1)
return -2;
#if __LIBGCC_BITINT_ORDER__ == __ORDER_BIG_ENDIAN__
- ++p;
+ ++*p;
#else
--i;
#endif
@@ -1358,7 +1358,7 @@ bitint_reduce_prec (const UBILtype **p, SItype prec)
if ((Wtype) mslimb >= 0)
{
#if __LIBGCC_BITINT_ORDER__ == __ORDER_BIG_ENDIAN__
- --p;
+ --*p;
#endif
return prec - 1;
}
@@ -1387,7 +1387,7 @@ bitint_reduce_prec (const UBILtype **p, SItype prec)
if (prec == 0)
return 1;
#if __LIBGCC_BITINT_ORDER__ == __ORDER_BIG_ENDIAN__
- ++p;
+ ++*p;
#else
--i;
#endif
@@ -1400,7 +1400,7 @@ bitint_reduce_prec (const UBILtype **p, SItype prec)
if (prec == 0)
return 1;
#if __LIBGCC_BITINT_ORDER__ == __ORDER_BIG_ENDIAN__
- ++p;
+ ++*p;
#else
--i;
#endif
@@ -2673,6 +2673,7 @@ NAME (TYPE x, int m)
#define isfinite(x) __builtin_isfinite (x)
#define isinf(x) __builtin_isinf (x)
+#undef INFINITY
#define INFINITY CONCAT2(__builtin_huge_val, CEXT) ()
#define I 1i
diff --git a/libgcc/libgcc2.h b/libgcc/libgcc2.h
index b358b3a..c121263 100644
--- a/libgcc/libgcc2.h
+++ b/libgcc/libgcc2.h
@@ -1,5 +1,5 @@
/* Header file for libgcc2.c. */
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/libgcov-driver-system.c b/libgcc/libgcov-driver-system.c
index 45a12c5..8a5f613 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -232,7 +232,7 @@ allocate_filename_struct (struct gcov_filename *gf)
/* Get file name relocation prefix. Non-absolute values are ignored. */
gcov_prefix = getenv("GCOV_PREFIX");
prefix_length = gcov_prefix ? strlen (gcov_prefix) : 0;
-
+
/* Remove an unnecessary trailing '/' */
if (prefix_length && IS_DIR_SEPARATOR (gcov_prefix[prefix_length - 1]))
prefix_length--;
diff --git a/libgcc/libgcov-driver.c b/libgcc/libgcov-driver.c
index 2ea3932..bc1ef21 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -720,7 +720,7 @@ __gcov_dump_one (struct gcov_root *root)
return;
gcov_do_dump (root->list, root->run_counted, 0);
-
+
root->dumped = 1;
root->run_counted = 1;
}
@@ -729,7 +729,7 @@ __gcov_dump_one (struct gcov_root *root)
struct gcov_root __gcov_root;
/* Exactly one of these will be live in the process image. */
-struct gcov_master __gcov_master =
+struct gcov_master __gcov_master =
{GCOV_VERSION, 0};
/* Dynamic pool for gcov_kvp structures. */
diff --git a/libgcc/libgcov-interface.c b/libgcc/libgcov-interface.c
index 9037f10..b8bd9b0 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/libgcov-merge.c b/libgcc/libgcov-merge.c
index 5eb174f..56fe233 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/libgcov-profiler.c b/libgcc/libgcov-profiler.c
index 05b6a23..fcc2a93 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/libgcov-util.c b/libgcc/libgcov-util.c
index f443408..73ffce2 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
Contributed by Rong Xu <xur@google.com>.
This file is part of GCC.
@@ -27,6 +27,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define IN_GCOV_TOOL 1
+#define INCLUDE_MEMORY
#include "libgcov.h"
#include "intl.h"
#include "diagnostic.h"
diff --git a/libgcc/libgcov.h b/libgcc/libgcov.h
index 9d83a27..3d7d52a 100644
--- a/libgcc/libgcov.h
+++ b/libgcc/libgcov.h
@@ -1,5 +1,5 @@
/* Header file for libgcov-*.c.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -230,7 +230,7 @@ struct gcov_info
gcov_merge_fn merge[GCOV_COUNTERS]; /* merge functions (null for
unused) */
-
+
gcov_unsigned_t n_functions; /* number of functions */
#ifndef IN_GCOV_TOOL
@@ -268,7 +268,7 @@ struct indirect_call_tuple
/* Pointer to counters. */
gcov_type *counters;
};
-
+
/* Exactly one of these will be active in the process. */
extern struct gcov_master __gcov_master;
extern struct gcov_kvp *__gcov_kvp_dynamic_pool;
diff --git a/libgcc/mkheader.sh b/libgcc/mkheader.sh
index df5d7d8..63199ee 100755
--- a/libgcc/mkheader.sh
+++ b/libgcc/mkheader.sh
@@ -1,6 +1,6 @@
#! /bin/sh
-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# Copyright (C) 2001-2025 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 4fc0d14..704b82b 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 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 afa94ac..393277a 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-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# Contributed by Richard Henderson <rth@cygnus.com>
#
# This file is part of GCC.
diff --git a/libgcc/offloadstuff.c b/libgcc/offloadstuff.c
index 572b127..17af844 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/soft-fp/bitint.h b/libgcc/soft-fp/bitint.h
index 07a7bcb..457fc8f 100644
--- a/libgcc/soft-fp/bitint.h
+++ b/libgcc/soft-fp/bitint.h
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Definitions for _BitInt implementation details.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -76,7 +76,7 @@ bitint_reduce_prec (const UBILtype **p, SItype prec)
if (prec >= -1)
return -2;
#if __LIBGCC_BITINT_ORDER__ == __ORDER_BIG_ENDIAN__
- ++p;
+ ++*p;
#else
--i;
#endif
@@ -90,7 +90,7 @@ bitint_reduce_prec (const UBILtype **p, SItype prec)
if (prec >= -1)
return -2;
#if __LIBGCC_BITINT_ORDER__ == __ORDER_BIG_ENDIAN__
- ++p;
+ ++*p;
#else
--i;
#endif
@@ -101,7 +101,7 @@ bitint_reduce_prec (const UBILtype **p, SItype prec)
if ((BILtype) mslimb >= 0)
{
#if __LIBGCC_BITINT_ORDER__ == __ORDER_BIG_ENDIAN__
- --p;
+ --*p;
#endif
return prec - 1;
}
@@ -130,7 +130,7 @@ bitint_reduce_prec (const UBILtype **p, SItype prec)
if (prec == 0)
return 1;
#if __LIBGCC_BITINT_ORDER__ == __ORDER_BIG_ENDIAN__
- ++p;
+ ++*p;
#else
--i;
#endif
@@ -143,7 +143,7 @@ bitint_reduce_prec (const UBILtype **p, SItype prec)
if (prec == 0)
return 1;
#if __LIBGCC_BITINT_ORDER__ == __ORDER_BIG_ENDIAN__
- ++p;
+ ++*p;
#else
--i;
#endif
@@ -352,6 +352,10 @@ extern void __divmodbitint4 (UBILtype *, SItype, UBILtype *, SItype,
const UBILtype *, SItype,
const UBILtype *, SItype);
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_pow10bitint __dpd_pow10bitint
+extern const unsigned short __dpd_d2bbitint[1024], __dpd_b2dbitint[1000];
+#endif
extern USItype __bid_pow10bitint (UBILtype *, SItype, USItype);
#endif /* __BITINT_MAXWIDTH__ */
diff --git a/libgcc/soft-fp/bitintpow10.c b/libgcc/soft-fp/bitintpow10.c
index 06a470f0..15b288c 100644
--- a/libgcc/soft-fp/bitintpow10.c
+++ b/libgcc/soft-fp/bitintpow10.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Compute powers of 10 into _BitInt.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -130,3 +130,341 @@ __bid_pow10bitint (UBILtype *r, SItype rprec, USItype n)
}
}
#endif
+
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+/* DPD encoded 10-bit number to decimal table. */
+const unsigned short __dpd_d2bbitint[1024] = {
+ 0, 1, 2, 3, 4, 5, 6, 7,
+ 8, 9, 80, 81, 800, 801, 880, 881,
+ 10, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 90, 91, 810, 811, 890, 891,
+ 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 82, 83, 820, 821, 808, 809,
+ 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 92, 93, 830, 831, 818, 819,
+ 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 84, 85, 840, 841, 88, 89,
+ 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 94, 95, 850, 851, 98, 99,
+ 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 86, 87, 860, 861, 888, 889,
+ 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 96, 97, 870, 871, 898, 899,
+ 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 180, 181, 900, 901, 980, 981,
+ 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 190, 191, 910, 911, 990, 991,
+ 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 182, 183, 920, 921, 908, 909,
+ 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 192, 193, 930, 931, 918, 919,
+ 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 184, 185, 940, 941, 188, 189,
+ 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 194, 195, 950, 951, 198, 199,
+ 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 186, 187, 960, 961, 988, 989,
+ 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 196, 197, 970, 971, 998, 999,
+ 200, 201, 202, 203, 204, 205, 206, 207,
+ 208, 209, 280, 281, 802, 803, 882, 883,
+ 210, 211, 212, 213, 214, 215, 216, 217,
+ 218, 219, 290, 291, 812, 813, 892, 893,
+ 220, 221, 222, 223, 224, 225, 226, 227,
+ 228, 229, 282, 283, 822, 823, 828, 829,
+ 230, 231, 232, 233, 234, 235, 236, 237,
+ 238, 239, 292, 293, 832, 833, 838, 839,
+ 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 284, 285, 842, 843, 288, 289,
+ 250, 251, 252, 253, 254, 255, 256, 257,
+ 258, 259, 294, 295, 852, 853, 298, 299,
+ 260, 261, 262, 263, 264, 265, 266, 267,
+ 268, 269, 286, 287, 862, 863, 888, 889,
+ 270, 271, 272, 273, 274, 275, 276, 277,
+ 278, 279, 296, 297, 872, 873, 898, 899,
+ 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 380, 381, 902, 903, 982, 983,
+ 310, 311, 312, 313, 314, 315, 316, 317,
+ 318, 319, 390, 391, 912, 913, 992, 993,
+ 320, 321, 322, 323, 324, 325, 326, 327,
+ 328, 329, 382, 383, 922, 923, 928, 929,
+ 330, 331, 332, 333, 334, 335, 336, 337,
+ 338, 339, 392, 393, 932, 933, 938, 939,
+ 340, 341, 342, 343, 344, 345, 346, 347,
+ 348, 349, 384, 385, 942, 943, 388, 389,
+ 350, 351, 352, 353, 354, 355, 356, 357,
+ 358, 359, 394, 395, 952, 953, 398, 399,
+ 360, 361, 362, 363, 364, 365, 366, 367,
+ 368, 369, 386, 387, 962, 963, 988, 989,
+ 370, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 396, 397, 972, 973, 998, 999,
+ 400, 401, 402, 403, 404, 405, 406, 407,
+ 408, 409, 480, 481, 804, 805, 884, 885,
+ 410, 411, 412, 413, 414, 415, 416, 417,
+ 418, 419, 490, 491, 814, 815, 894, 895,
+ 420, 421, 422, 423, 424, 425, 426, 427,
+ 428, 429, 482, 483, 824, 825, 848, 849,
+ 430, 431, 432, 433, 434, 435, 436, 437,
+ 438, 439, 492, 493, 834, 835, 858, 859,
+ 440, 441, 442, 443, 444, 445, 446, 447,
+ 448, 449, 484, 485, 844, 845, 488, 489,
+ 450, 451, 452, 453, 454, 455, 456, 457,
+ 458, 459, 494, 495, 854, 855, 498, 499,
+ 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 486, 487, 864, 865, 888, 889,
+ 470, 471, 472, 473, 474, 475, 476, 477,
+ 478, 479, 496, 497, 874, 875, 898, 899,
+ 500, 501, 502, 503, 504, 505, 506, 507,
+ 508, 509, 580, 581, 904, 905, 984, 985,
+ 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 590, 591, 914, 915, 994, 995,
+ 520, 521, 522, 523, 524, 525, 526, 527,
+ 528, 529, 582, 583, 924, 925, 948, 949,
+ 530, 531, 532, 533, 534, 535, 536, 537,
+ 538, 539, 592, 593, 934, 935, 958, 959,
+ 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 584, 585, 944, 945, 588, 589,
+ 550, 551, 552, 553, 554, 555, 556, 557,
+ 558, 559, 594, 595, 954, 955, 598, 599,
+ 560, 561, 562, 563, 564, 565, 566, 567,
+ 568, 569, 586, 587, 964, 965, 988, 989,
+ 570, 571, 572, 573, 574, 575, 576, 577,
+ 578, 579, 596, 597, 974, 975, 998, 999,
+ 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 680, 681, 806, 807, 886, 887,
+ 610, 611, 612, 613, 614, 615, 616, 617,
+ 618, 619, 690, 691, 816, 817, 896, 897,
+ 620, 621, 622, 623, 624, 625, 626, 627,
+ 628, 629, 682, 683, 826, 827, 868, 869,
+ 630, 631, 632, 633, 634, 635, 636, 637,
+ 638, 639, 692, 693, 836, 837, 878, 879,
+ 640, 641, 642, 643, 644, 645, 646, 647,
+ 648, 649, 684, 685, 846, 847, 688, 689,
+ 650, 651, 652, 653, 654, 655, 656, 657,
+ 658, 659, 694, 695, 856, 857, 698, 699,
+ 660, 661, 662, 663, 664, 665, 666, 667,
+ 668, 669, 686, 687, 866, 867, 888, 889,
+ 670, 671, 672, 673, 674, 675, 676, 677,
+ 678, 679, 696, 697, 876, 877, 898, 899,
+ 700, 701, 702, 703, 704, 705, 706, 707,
+ 708, 709, 780, 781, 906, 907, 986, 987,
+ 710, 711, 712, 713, 714, 715, 716, 717,
+ 718, 719, 790, 791, 916, 917, 996, 997,
+ 720, 721, 722, 723, 724, 725, 726, 727,
+ 728, 729, 782, 783, 926, 927, 968, 969,
+ 730, 731, 732, 733, 734, 735, 736, 737,
+ 738, 739, 792, 793, 936, 937, 978, 979,
+ 740, 741, 742, 743, 744, 745, 746, 747,
+ 748, 749, 784, 785, 946, 947, 788, 789,
+ 750, 751, 752, 753, 754, 755, 756, 757,
+ 758, 759, 794, 795, 956, 957, 798, 799,
+ 760, 761, 762, 763, 764, 765, 766, 767,
+ 768, 769, 786, 787, 966, 967, 988, 989,
+ 770, 771, 772, 773, 774, 775, 776, 777,
+ 778, 779, 796, 797, 976, 977, 998, 999
+};
+
+/* Decimal to DPD encoded 10-bit number table. */
+const unsigned short __dpd_b2dbitint[1000] = {
+ 0x000, 0x001, 0x002, 0x003, 0x004,
+ 0x005, 0x006, 0x007, 0x008, 0x009,
+ 0x010, 0x011, 0x012, 0x013, 0x014,
+ 0x015, 0x016, 0x017, 0x018, 0x019,
+ 0x020, 0x021, 0x022, 0x023, 0x024,
+ 0x025, 0x026, 0x027, 0x028, 0x029,
+ 0x030, 0x031, 0x032, 0x033, 0x034,
+ 0x035, 0x036, 0x037, 0x038, 0x039,
+ 0x040, 0x041, 0x042, 0x043, 0x044,
+ 0x045, 0x046, 0x047, 0x048, 0x049,
+ 0x050, 0x051, 0x052, 0x053, 0x054,
+ 0x055, 0x056, 0x057, 0x058, 0x059,
+ 0x060, 0x061, 0x062, 0x063, 0x064,
+ 0x065, 0x066, 0x067, 0x068, 0x069,
+ 0x070, 0x071, 0x072, 0x073, 0x074,
+ 0x075, 0x076, 0x077, 0x078, 0x079,
+ 0x00a, 0x00b, 0x02a, 0x02b, 0x04a,
+ 0x04b, 0x06a, 0x06b, 0x04e, 0x04f,
+ 0x01a, 0x01b, 0x03a, 0x03b, 0x05a,
+ 0x05b, 0x07a, 0x07b, 0x05e, 0x05f,
+ 0x080, 0x081, 0x082, 0x083, 0x084,
+ 0x085, 0x086, 0x087, 0x088, 0x089,
+ 0x090, 0x091, 0x092, 0x093, 0x094,
+ 0x095, 0x096, 0x097, 0x098, 0x099,
+ 0x0a0, 0x0a1, 0x0a2, 0x0a3, 0x0a4,
+ 0x0a5, 0x0a6, 0x0a7, 0x0a8, 0x0a9,
+ 0x0b0, 0x0b1, 0x0b2, 0x0b3, 0x0b4,
+ 0x0b5, 0x0b6, 0x0b7, 0x0b8, 0x0b9,
+ 0x0c0, 0x0c1, 0x0c2, 0x0c3, 0x0c4,
+ 0x0c5, 0x0c6, 0x0c7, 0x0c8, 0x0c9,
+ 0x0d0, 0x0d1, 0x0d2, 0x0d3, 0x0d4,
+ 0x0d5, 0x0d6, 0x0d7, 0x0d8, 0x0d9,
+ 0x0e0, 0x0e1, 0x0e2, 0x0e3, 0x0e4,
+ 0x0e5, 0x0e6, 0x0e7, 0x0e8, 0x0e9,
+ 0x0f0, 0x0f1, 0x0f2, 0x0f3, 0x0f4,
+ 0x0f5, 0x0f6, 0x0f7, 0x0f8, 0x0f9,
+ 0x08a, 0x08b, 0x0aa, 0x0ab, 0x0ca,
+ 0x0cb, 0x0ea, 0x0eb, 0x0ce, 0x0cf,
+ 0x09a, 0x09b, 0x0ba, 0x0bb, 0x0da,
+ 0x0db, 0x0fa, 0x0fb, 0x0de, 0x0df,
+ 0x100, 0x101, 0x102, 0x103, 0x104,
+ 0x105, 0x106, 0x107, 0x108, 0x109,
+ 0x110, 0x111, 0x112, 0x113, 0x114,
+ 0x115, 0x116, 0x117, 0x118, 0x119,
+ 0x120, 0x121, 0x122, 0x123, 0x124,
+ 0x125, 0x126, 0x127, 0x128, 0x129,
+ 0x130, 0x131, 0x132, 0x133, 0x134,
+ 0x135, 0x136, 0x137, 0x138, 0x139,
+ 0x140, 0x141, 0x142, 0x143, 0x144,
+ 0x145, 0x146, 0x147, 0x148, 0x149,
+ 0x150, 0x151, 0x152, 0x153, 0x154,
+ 0x155, 0x156, 0x157, 0x158, 0x159,
+ 0x160, 0x161, 0x162, 0x163, 0x164,
+ 0x165, 0x166, 0x167, 0x168, 0x169,
+ 0x170, 0x171, 0x172, 0x173, 0x174,
+ 0x175, 0x176, 0x177, 0x178, 0x179,
+ 0x10a, 0x10b, 0x12a, 0x12b, 0x14a,
+ 0x14b, 0x16a, 0x16b, 0x14e, 0x14f,
+ 0x11a, 0x11b, 0x13a, 0x13b, 0x15a,
+ 0x15b, 0x17a, 0x17b, 0x15e, 0x15f,
+ 0x180, 0x181, 0x182, 0x183, 0x184,
+ 0x185, 0x186, 0x187, 0x188, 0x189,
+ 0x190, 0x191, 0x192, 0x193, 0x194,
+ 0x195, 0x196, 0x197, 0x198, 0x199,
+ 0x1a0, 0x1a1, 0x1a2, 0x1a3, 0x1a4,
+ 0x1a5, 0x1a6, 0x1a7, 0x1a8, 0x1a9,
+ 0x1b0, 0x1b1, 0x1b2, 0x1b3, 0x1b4,
+ 0x1b5, 0x1b6, 0x1b7, 0x1b8, 0x1b9,
+ 0x1c0, 0x1c1, 0x1c2, 0x1c3, 0x1c4,
+ 0x1c5, 0x1c6, 0x1c7, 0x1c8, 0x1c9,
+ 0x1d0, 0x1d1, 0x1d2, 0x1d3, 0x1d4,
+ 0x1d5, 0x1d6, 0x1d7, 0x1d8, 0x1d9,
+ 0x1e0, 0x1e1, 0x1e2, 0x1e3, 0x1e4,
+ 0x1e5, 0x1e6, 0x1e7, 0x1e8, 0x1e9,
+ 0x1f0, 0x1f1, 0x1f2, 0x1f3, 0x1f4,
+ 0x1f5, 0x1f6, 0x1f7, 0x1f8, 0x1f9,
+ 0x18a, 0x18b, 0x1aa, 0x1ab, 0x1ca,
+ 0x1cb, 0x1ea, 0x1eb, 0x1ce, 0x1cf,
+ 0x19a, 0x19b, 0x1ba, 0x1bb, 0x1da,
+ 0x1db, 0x1fa, 0x1fb, 0x1de, 0x1df,
+ 0x200, 0x201, 0x202, 0x203, 0x204,
+ 0x205, 0x206, 0x207, 0x208, 0x209,
+ 0x210, 0x211, 0x212, 0x213, 0x214,
+ 0x215, 0x216, 0x217, 0x218, 0x219,
+ 0x220, 0x221, 0x222, 0x223, 0x224,
+ 0x225, 0x226, 0x227, 0x228, 0x229,
+ 0x230, 0x231, 0x232, 0x233, 0x234,
+ 0x235, 0x236, 0x237, 0x238, 0x239,
+ 0x240, 0x241, 0x242, 0x243, 0x244,
+ 0x245, 0x246, 0x247, 0x248, 0x249,
+ 0x250, 0x251, 0x252, 0x253, 0x254,
+ 0x255, 0x256, 0x257, 0x258, 0x259,
+ 0x260, 0x261, 0x262, 0x263, 0x264,
+ 0x265, 0x266, 0x267, 0x268, 0x269,
+ 0x270, 0x271, 0x272, 0x273, 0x274,
+ 0x275, 0x276, 0x277, 0x278, 0x279,
+ 0x20a, 0x20b, 0x22a, 0x22b, 0x24a,
+ 0x24b, 0x26a, 0x26b, 0x24e, 0x24f,
+ 0x21a, 0x21b, 0x23a, 0x23b, 0x25a,
+ 0x25b, 0x27a, 0x27b, 0x25e, 0x25f,
+ 0x280, 0x281, 0x282, 0x283, 0x284,
+ 0x285, 0x286, 0x287, 0x288, 0x289,
+ 0x290, 0x291, 0x292, 0x293, 0x294,
+ 0x295, 0x296, 0x297, 0x298, 0x299,
+ 0x2a0, 0x2a1, 0x2a2, 0x2a3, 0x2a4,
+ 0x2a5, 0x2a6, 0x2a7, 0x2a8, 0x2a9,
+ 0x2b0, 0x2b1, 0x2b2, 0x2b3, 0x2b4,
+ 0x2b5, 0x2b6, 0x2b7, 0x2b8, 0x2b9,
+ 0x2c0, 0x2c1, 0x2c2, 0x2c3, 0x2c4,
+ 0x2c5, 0x2c6, 0x2c7, 0x2c8, 0x2c9,
+ 0x2d0, 0x2d1, 0x2d2, 0x2d3, 0x2d4,
+ 0x2d5, 0x2d6, 0x2d7, 0x2d8, 0x2d9,
+ 0x2e0, 0x2e1, 0x2e2, 0x2e3, 0x2e4,
+ 0x2e5, 0x2e6, 0x2e7, 0x2e8, 0x2e9,
+ 0x2f0, 0x2f1, 0x2f2, 0x2f3, 0x2f4,
+ 0x2f5, 0x2f6, 0x2f7, 0x2f8, 0x2f9,
+ 0x28a, 0x28b, 0x2aa, 0x2ab, 0x2ca,
+ 0x2cb, 0x2ea, 0x2eb, 0x2ce, 0x2cf,
+ 0x29a, 0x29b, 0x2ba, 0x2bb, 0x2da,
+ 0x2db, 0x2fa, 0x2fb, 0x2de, 0x2df,
+ 0x300, 0x301, 0x302, 0x303, 0x304,
+ 0x305, 0x306, 0x307, 0x308, 0x309,
+ 0x310, 0x311, 0x312, 0x313, 0x314,
+ 0x315, 0x316, 0x317, 0x318, 0x319,
+ 0x320, 0x321, 0x322, 0x323, 0x324,
+ 0x325, 0x326, 0x327, 0x328, 0x329,
+ 0x330, 0x331, 0x332, 0x333, 0x334,
+ 0x335, 0x336, 0x337, 0x338, 0x339,
+ 0x340, 0x341, 0x342, 0x343, 0x344,
+ 0x345, 0x346, 0x347, 0x348, 0x349,
+ 0x350, 0x351, 0x352, 0x353, 0x354,
+ 0x355, 0x356, 0x357, 0x358, 0x359,
+ 0x360, 0x361, 0x362, 0x363, 0x364,
+ 0x365, 0x366, 0x367, 0x368, 0x369,
+ 0x370, 0x371, 0x372, 0x373, 0x374,
+ 0x375, 0x376, 0x377, 0x378, 0x379,
+ 0x30a, 0x30b, 0x32a, 0x32b, 0x34a,
+ 0x34b, 0x36a, 0x36b, 0x34e, 0x34f,
+ 0x31a, 0x31b, 0x33a, 0x33b, 0x35a,
+ 0x35b, 0x37a, 0x37b, 0x35e, 0x35f,
+ 0x380, 0x381, 0x382, 0x383, 0x384,
+ 0x385, 0x386, 0x387, 0x388, 0x389,
+ 0x390, 0x391, 0x392, 0x393, 0x394,
+ 0x395, 0x396, 0x397, 0x398, 0x399,
+ 0x3a0, 0x3a1, 0x3a2, 0x3a3, 0x3a4,
+ 0x3a5, 0x3a6, 0x3a7, 0x3a8, 0x3a9,
+ 0x3b0, 0x3b1, 0x3b2, 0x3b3, 0x3b4,
+ 0x3b5, 0x3b6, 0x3b7, 0x3b8, 0x3b9,
+ 0x3c0, 0x3c1, 0x3c2, 0x3c3, 0x3c4,
+ 0x3c5, 0x3c6, 0x3c7, 0x3c8, 0x3c9,
+ 0x3d0, 0x3d1, 0x3d2, 0x3d3, 0x3d4,
+ 0x3d5, 0x3d6, 0x3d7, 0x3d8, 0x3d9,
+ 0x3e0, 0x3e1, 0x3e2, 0x3e3, 0x3e4,
+ 0x3e5, 0x3e6, 0x3e7, 0x3e8, 0x3e9,
+ 0x3f0, 0x3f1, 0x3f2, 0x3f3, 0x3f4,
+ 0x3f5, 0x3f6, 0x3f7, 0x3f8, 0x3f9,
+ 0x38a, 0x38b, 0x3aa, 0x3ab, 0x3ca,
+ 0x3cb, 0x3ea, 0x3eb, 0x3ce, 0x3cf,
+ 0x39a, 0x39b, 0x3ba, 0x3bb, 0x3da,
+ 0x3db, 0x3fa, 0x3fb, 0x3de, 0x3df,
+ 0x00c, 0x00d, 0x10c, 0x10d, 0x20c,
+ 0x20d, 0x30c, 0x30d, 0x02e, 0x02f,
+ 0x01c, 0x01d, 0x11c, 0x11d, 0x21c,
+ 0x21d, 0x31c, 0x31d, 0x03e, 0x03f,
+ 0x02c, 0x02d, 0x12c, 0x12d, 0x22c,
+ 0x22d, 0x32c, 0x32d, 0x12e, 0x12f,
+ 0x03c, 0x03d, 0x13c, 0x13d, 0x23c,
+ 0x23d, 0x33c, 0x33d, 0x13e, 0x13f,
+ 0x04c, 0x04d, 0x14c, 0x14d, 0x24c,
+ 0x24d, 0x34c, 0x34d, 0x22e, 0x22f,
+ 0x05c, 0x05d, 0x15c, 0x15d, 0x25c,
+ 0x25d, 0x35c, 0x35d, 0x23e, 0x23f,
+ 0x06c, 0x06d, 0x16c, 0x16d, 0x26c,
+ 0x26d, 0x36c, 0x36d, 0x32e, 0x32f,
+ 0x07c, 0x07d, 0x17c, 0x17d, 0x27c,
+ 0x27d, 0x37c, 0x37d, 0x33e, 0x33f,
+ 0x00e, 0x00f, 0x10e, 0x10f, 0x20e,
+ 0x20f, 0x30e, 0x30f, 0x06e, 0x06f,
+ 0x01e, 0x01f, 0x11e, 0x11f, 0x21e,
+ 0x21f, 0x31e, 0x31f, 0x07e, 0x07f,
+ 0x08c, 0x08d, 0x18c, 0x18d, 0x28c,
+ 0x28d, 0x38c, 0x38d, 0x0ae, 0x0af,
+ 0x09c, 0x09d, 0x19c, 0x19d, 0x29c,
+ 0x29d, 0x39c, 0x39d, 0x0be, 0x0bf,
+ 0x0ac, 0x0ad, 0x1ac, 0x1ad, 0x2ac,
+ 0x2ad, 0x3ac, 0x3ad, 0x1ae, 0x1af,
+ 0x0bc, 0x0bd, 0x1bc, 0x1bd, 0x2bc,
+ 0x2bd, 0x3bc, 0x3bd, 0x1be, 0x1bf,
+ 0x0cc, 0x0cd, 0x1cc, 0x1cd, 0x2cc,
+ 0x2cd, 0x3cc, 0x3cd, 0x2ae, 0x2af,
+ 0x0dc, 0x0dd, 0x1dc, 0x1dd, 0x2dc,
+ 0x2dd, 0x3dc, 0x3dd, 0x2be, 0x2bf,
+ 0x0ec, 0x0ed, 0x1ec, 0x1ed, 0x2ec,
+ 0x2ed, 0x3ec, 0x3ed, 0x3ae, 0x3af,
+ 0x0fc, 0x0fd, 0x1fc, 0x1fd, 0x2fc,
+ 0x2fd, 0x3fc, 0x3fd, 0x3be, 0x3bf,
+ 0x08e, 0x08f, 0x18e, 0x18f, 0x28e,
+ 0x28f, 0x38e, 0x38f, 0x0ee, 0x0ef,
+ 0x09e, 0x09f, 0x19e, 0x19f, 0x29e,
+ 0x29f, 0x39e, 0x39f, 0x0fe, 0x0ff
+};
+#endif
diff --git a/libgcc/soft-fp/fixddbitint.c b/libgcc/soft-fp/fixddbitint.c
index 7b0162e..067a9a6 100644
--- a/libgcc/soft-fp/fixddbitint.c
+++ b/libgcc/soft-fp/fixddbitint.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert _Decimal64 to signed or unsigned _BitInt.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#ifdef __BITINT_MAXWIDTH__
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_fixddbitint __dpd_fixddbitint
+#endif
extern void __bid_fixddbitint (UBILtype *, SItype, _Decimal64);
void
@@ -48,6 +51,7 @@ __bid_fixddbitint (UBILtype *r, SItype rprec, _Decimal64 a)
u.d = a;
t = u.u >> 51;
sgn = (DItype) u.u < 0;
+#ifdef ENABLE_DECIMAL_BID_FORMAT
if ((t & (3 << 10)) != (3 << 10))
{
mantissa = u.u & ((((UDItype) 1) << 53) - 1);
@@ -61,6 +65,31 @@ __bid_fixddbitint (UBILtype *r, SItype rprec, _Decimal64 a)
if (mantissa > (UDItype) 9999999999999999)
mantissa = 0;
}
+#else
+ if ((t & (15 << 8)) != (15 << 8))
+ {
+ exponent = (u.u >> 50) & 255;
+ if ((t & (3 << 10)) != (3 << 10))
+ {
+ mantissa = ((t >> 7) & 7) * 1000;
+ exponent += (t >> 2) & (3 << 8);
+ }
+ else
+ {
+ mantissa = ((t >> 7) & 1) ? 9000 : 8000;
+ exponent += t & (3 << 8);
+ }
+ mantissa += __dpd_d2bbitint[(u.u >> 40) & 1023];
+ mantissa *= 1000;
+ mantissa += __dpd_d2bbitint[(u.u >> 30) & 1023];
+ mantissa *= 1000;
+ mantissa += __dpd_d2bbitint[(u.u >> 20) & 1023];
+ mantissa *= 1000;
+ mantissa += __dpd_d2bbitint[(u.u >> 10) & 1023];
+ mantissa *= 1000;
+ mantissa += __dpd_d2bbitint[u.u & 1023];
+ }
+#endif
else
{
FP_SET_EXCEPTION (FP_EX_INVALID
@@ -162,7 +191,7 @@ __bid_fixddbitint (UBILtype *r, SItype rprec, _Decimal64 a)
if (res_limbs + low_zeros > rn && resv[BITINT_END (0, res_limbs - 1)])
goto ovf_ex;
if ((arprec % BIL_TYPE_SIZE) != 0
- && (resv[BITINT_END (rn - res_limbs, rn - 1) - low_zeros]
+ && (resv[BITINT_END (res_limbs + low_zeros - rn, rn - 1 - low_zeros)]
& ((UBILtype) -1 << (arprec % BIL_TYPE_SIZE))) != 0)
goto ovf_ex;
min_limbs = rn - low_zeros;
diff --git a/libgcc/soft-fp/fixddti.c b/libgcc/soft-fp/fixddti.c
index c27ae8b..c7b4ad7 100644
--- a/libgcc/soft-fp/fixddti.c
+++ b/libgcc/soft-fp/fixddti.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert _Decimal64 to 128bit signed integer.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#if defined(__BITINT_MAXWIDTH__) && defined(__SIZEOF_INT128__)
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_fixddbitint __dpd_fixddbitint
+#define __bid_fixddti __dpd_fixddti
+#endif
extern void __bid_fixddbitint (UBILtype *, SItype, _Decimal64);
extern TItype __bid_fixddti (_Decimal64);
diff --git a/libgcc/soft-fp/fixsdbitint.c b/libgcc/soft-fp/fixsdbitint.c
index 2ba550f..fc117d9 100644
--- a/libgcc/soft-fp/fixsdbitint.c
+++ b/libgcc/soft-fp/fixsdbitint.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert _Decimal32 to signed or unsigned _BitInt.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#ifdef __BITINT_MAXWIDTH__
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_fixsdbitint __dpd_fixsdbitint
+#endif
extern void __bid_fixsdbitint (UBILtype *, SItype, _Decimal32);
void
@@ -48,6 +51,7 @@ __bid_fixsdbitint (UBILtype *r, SItype rprec, _Decimal32 a)
u.d = a;
t = u.u >> 21;
sgn = (SItype) u.u < 0;
+#ifdef ENABLE_DECIMAL_BID_FORMAT
if ((t & (3 << 8)) != (3 << 8))
{
mantissa = u.u & ((((USItype) 1) << 23) - 1);
@@ -61,6 +65,25 @@ __bid_fixsdbitint (UBILtype *r, SItype rprec, _Decimal32 a)
if (mantissa > (USItype) 9999999)
mantissa = 0;
}
+#else
+ if ((t & (15 << 6)) != (15 << 6))
+ {
+ exponent = (u.u >> 20) & 63;
+ if ((t & (3 << 8)) != (3 << 8))
+ {
+ mantissa = ((t >> 5) & 7) * 1000;
+ exponent += (t >> 2) & (3 << 6);
+ }
+ else
+ {
+ mantissa = ((t >> 5) & 1) ? 9000 : 8000;
+ exponent += t & (3 << 6);
+ }
+ mantissa += __dpd_d2bbitint[(u.u >> 10) & 1023];
+ mantissa *= 1000;
+ mantissa += __dpd_d2bbitint[u.u & 1023];
+ }
+#endif
else
{
FP_SET_EXCEPTION (FP_EX_INVALID
@@ -153,7 +176,7 @@ __bid_fixsdbitint (UBILtype *r, SItype rprec, _Decimal32 a)
if (res_limbs + low_zeros > rn && resv[BITINT_END (0, res_limbs - 1)])
goto ovf_ex;
if ((arprec % BIL_TYPE_SIZE) != 0
- && (resv[BITINT_END (rn - res_limbs, rn - 1) - low_zeros]
+ && (resv[BITINT_END (res_limbs + low_zeros - rn, rn - 1 - low_zeros)]
& ((UBILtype) -1 << (arprec % BIL_TYPE_SIZE))) != 0)
goto ovf_ex;
min_limbs = rn - low_zeros;
diff --git a/libgcc/soft-fp/fixsdti.c b/libgcc/soft-fp/fixsdti.c
index 8477ace..9a53508 100644
--- a/libgcc/soft-fp/fixsdti.c
+++ b/libgcc/soft-fp/fixsdti.c
@@ -28,6 +28,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#if defined(__BITINT_MAXWIDTH__) && defined(__SIZEOF_INT128__)
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_fixsdbitint __dpd_fixsdbitint
+#define __bid_fixsdti __dpd_fixsdti
+#endif
extern void __bid_fixsdbitint (UBILtype *, SItype, _Decimal32);
extern TItype __bid_fixsdti (_Decimal32);
diff --git a/libgcc/soft-fp/fixtdbitint.c b/libgcc/soft-fp/fixtdbitint.c
index 66aca1c..a16aaab 100644
--- a/libgcc/soft-fp/fixtdbitint.c
+++ b/libgcc/soft-fp/fixtdbitint.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert _Decimal128 to signed or unsigned _BitInt.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#ifdef __BITINT_MAXWIDTH__
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_fixtdbitint __dpd_fixtdbitint
+#endif
extern void __bid_fixtdbitint (UBILtype *, SItype, _Decimal128);
void
@@ -50,6 +53,7 @@ __bid_fixtdbitint (UBILtype *r, SItype rprec, _Decimal128 a)
mantissalo = u.u[__FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__];
t = mantissahi >> 47;
sgn = (DItype) mantissahi < 0;
+#ifdef ENABLE_DECIMAL_BID_FORMAT
if ((t & (3 << 14)) != (3 << 14))
{
mantissahi &= ((((UDItype) 1) << 49) - 1);
@@ -68,6 +72,52 @@ __bid_fixtdbitint (UBILtype *r, SItype rprec, _Decimal128 a)
mantissalo = 0;
exponent = t & 0x3fff;
}
+#else
+ if ((t & (15 << 12)) != (15 << 12))
+ {
+ exponent = (mantissahi >> 46) & 4095;
+ if ((t & (3 << 14)) != (3 << 14))
+ {
+ exponent += (t >> 2) & (3 << 12);
+ t = ((t >> 11) & 7) * 1000;
+ }
+ else
+ {
+ exponent += t & (3 << 12);
+ t = ((t >> 11) & 1) ? 9000 : 8000;
+ }
+ t += __dpd_d2bbitint[(mantissahi >> (100 - 64)) & 1023];
+ t *= 1000;
+ t += __dpd_d2bbitint[(mantissahi >> (90 - 64)) & 1023];
+ t *= 1000;
+ t += __dpd_d2bbitint[(mantissahi >> (80 - 64)) & 1023];
+ t *= 1000;
+ t += __dpd_d2bbitint[(mantissahi >> (70 - 64)) & 1023];
+ t *= 1000;
+ t += __dpd_d2bbitint[((mantissahi & 63) << 4)
+ + ((mantissalo >> 60) & 15)];
+ t *= 1000;
+ t += __dpd_d2bbitint[mantissalo >> 50 & 1023];
+#ifdef __SIZEOF_INT128__
+ unsigned __int128 m = t;
+#else
+ unsigned _BitInt(128) m = t;
+#endif
+ m *= 1000000000000000ULL;
+ t = __dpd_d2bbitint[(mantissalo >> 40) & 1023];
+ t *= 1000;
+ t += __dpd_d2bbitint[(mantissalo >> 30) & 1023];
+ t *= 1000;
+ t += __dpd_d2bbitint[(mantissalo >> 20) & 1023];
+ t *= 1000;
+ t += __dpd_d2bbitint[(mantissalo >> 10) & 1023];
+ t *= 1000;
+ t += __dpd_d2bbitint[mantissalo & 1023];
+ m += t;
+ mantissahi = m >> 64;
+ mantissalo = m;
+ }
+#endif
else
{
FP_SET_EXCEPTION (FP_EX_INVALID
@@ -199,7 +249,7 @@ __bid_fixtdbitint (UBILtype *r, SItype rprec, _Decimal128 a)
if (res_limbs + low_zeros > rn && resv[BITINT_END (0, res_limbs - 1)])
goto ovf_ex;
if ((arprec % BIL_TYPE_SIZE) != 0
- && (resv[BITINT_END (rn - res_limbs, rn - 1) - low_zeros]
+ && (resv[BITINT_END (res_limbs + low_zeros - rn, rn - 1 - low_zeros)]
& ((UBILtype) -1 << (arprec % BIL_TYPE_SIZE))) != 0)
goto ovf_ex;
min_limbs = rn - low_zeros;
diff --git a/libgcc/soft-fp/fixtdti.c b/libgcc/soft-fp/fixtdti.c
index 9ac1333..ee26f26 100644
--- a/libgcc/soft-fp/fixtdti.c
+++ b/libgcc/soft-fp/fixtdti.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert _Decimal128 to 128bit signed integer.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#if defined(__BITINT_MAXWIDTH__) && defined(__SIZEOF_INT128__)
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_fixtdbitint __dpd_fixtdbitint
+#define __bid_fixtdti __dpd_fixtdti
+#endif
extern void __bid_fixtdbitint (UBILtype *, SItype, _Decimal128);
extern TItype __bid_fixtdti (_Decimal128);
diff --git a/libgcc/soft-fp/fixunsddti.c b/libgcc/soft-fp/fixunsddti.c
index 7551e00..b7a4a80 100644
--- a/libgcc/soft-fp/fixunsddti.c
+++ b/libgcc/soft-fp/fixunsddti.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert _Decimal64 to 128bit unsigned integer.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#if defined(__BITINT_MAXWIDTH__) && defined(__SIZEOF_INT128__)
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_fixddbitint __dpd_fixddbitint
+#define __bid_fixunsddti __dpd_fixunsddti
+#endif
extern void __bid_fixddbitint (UBILtype *, SItype, _Decimal64);
extern UTItype __bid_fixunsddti (_Decimal64);
diff --git a/libgcc/soft-fp/fixunssdti.c b/libgcc/soft-fp/fixunssdti.c
index 8d71b2c..3425c29 100644
--- a/libgcc/soft-fp/fixunssdti.c
+++ b/libgcc/soft-fp/fixunssdti.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert _Decimal32 to 128bit unsigned integer.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#if defined(__BITINT_MAXWIDTH__) && defined(__SIZEOF_INT128__)
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_fixsdbitint __dpd_fixsdbitint
+#define __bid_fixunssdti __dpd_fixunssdti
+#endif
extern void __bid_fixsdbitint (UBILtype *, SItype, _Decimal32);
extern UTItype __bid_fixunssdti (_Decimal32);
diff --git a/libgcc/soft-fp/fixunstdti.c b/libgcc/soft-fp/fixunstdti.c
index 41ae974..d63ec2b 100644
--- a/libgcc/soft-fp/fixunstdti.c
+++ b/libgcc/soft-fp/fixunstdti.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert _Decimal128 to 128bit unsigned integer.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#if defined(__BITINT_MAXWIDTH__) && defined(__SIZEOF_INT128__)
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_fixtdbitint __dpd_fixtdbitint
+#define __bid_fixunstdti __dpd_fixunstdti
+#endif
extern void __bid_fixtdbitint (UBILtype *, SItype, _Decimal128);
extern UTItype __bid_fixunstdti (_Decimal128);
diff --git a/libgcc/soft-fp/floatbitintdd.c b/libgcc/soft-fp/floatbitintdd.c
index 4565572..0547bb5 100644
--- a/libgcc/soft-fp/floatbitintdd.c
+++ b/libgcc/soft-fp/floatbitintdd.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert a _BitInt to _Decimal64.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#ifdef __BITINT_MAXWIDTH__
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_floatbitintdd __dpd_floatbitintdd
+#endif
extern _Decimal64 __bid_floatbitintdd (const UBILtype *, SItype);
_Decimal64
@@ -51,7 +54,11 @@ __bid_floatbitintdd (const UBILtype *i, SItype iprec)
}
if (iprec < 0)
{
- SItype n = sizeof (0ULL) * __CHAR_BIT__ + 1 - __builtin_clzll (~msb);
+ SItype n;
+ if (msb == ~(UBILtype) 0)
+ n = 1;
+ else
+ n = sizeof (0ULL) * __CHAR_BIT__ + 1 - __builtin_clzll (~msb);
aiprec = (in - 1) * BIL_TYPE_SIZE + n;
}
else if (msb == 0)
@@ -118,7 +125,8 @@ __bid_floatbitintdd (const UBILtype *i, SItype iprec)
}
else
{
- __builtin_memcpy (buf + BITINT_END (q_limbs - in + 1, 0), i,
+ __builtin_memcpy (buf + BITINT_END (q_limbs - in + 1, 0),
+ i + BITINT_END (1, 0),
(in - 1) * sizeof (UBILtype));
buf[BITINT_END (q_limbs - in, in - 1)] = msb;
if (iprec < 0)
@@ -239,6 +247,7 @@ __bid_floatbitintdd (const UBILtype *i, SItype iprec)
}
exponent += 398;
+#ifdef ENABLE_DECIMAL_BID_FORMAT
if (mantissa >= (UDItype) 0x20000000000000)
u.u = (((((iprec < 0) << 2) | (UDItype) 3) << 61)
| (((UDItype) exponent) << 51)
@@ -247,10 +256,40 @@ __bid_floatbitintdd (const UBILtype *i, SItype iprec)
u.u = ((((UDItype) (iprec < 0)) << 63)
| (((UDItype) exponent) << 53)
| mantissa);
+#else
+ u.u = mantissa;
+ mantissa = __dpd_b2dbitint[u.u % 1000];
+ u.u /= 1000;
+ mantissa |= ((UDItype) __dpd_b2dbitint[u.u % 1000]) << 10;
+ u.u /= 1000;
+ mantissa |= ((UDItype) __dpd_b2dbitint[u.u % 1000]) << 20;
+ u.u /= 1000;
+ mantissa |= ((UDItype) __dpd_b2dbitint[u.u % 1000]) << 30;
+ u.u /= 1000;
+ mantissa |= ((UDItype) __dpd_b2dbitint[u.u % 1000]) << 40;
+ u.u /= 1000;
+ if (u.u >= 8)
+ u.u = (((((iprec < 0) << 2) | (UDItype) 3) << 61)
+ | (((UDItype) exponent & (3 << 8)) << 51)
+ | ((u.u & 1) << 58)
+ | (((UDItype) exponent & 255) << 50)
+ | mantissa);
+ else
+ u.u = ((((UDItype) (iprec < 0)) << 63)
+ | (((UDItype) exponent & (3 << 8)) << 53)
+ | (u.u << 58)
+ | (((UDItype) exponent & 255) << 50)
+ | mantissa);
+#endif
if (inexact)
{
ui.u = ((((UDItype) (iprec < 0)) << 63)
+#ifdef ENABLE_DECIMAL_BID_FORMAT
| (((UDItype) (exponent - 1)) << 53)
+#else
+ | (((UDItype) (exponent - 1) & (3 << 8)) << 53)
+ | (((UDItype) (exponent - 1) & 255) << 50)
+#endif
| (inexact + 3));
__asm ("" : "+g" (u.d));
__asm ("" : "+g" (ui.d));
diff --git a/libgcc/soft-fp/floatbitintsd.c b/libgcc/soft-fp/floatbitintsd.c
index 4901aa8..915f46c 100644
--- a/libgcc/soft-fp/floatbitintsd.c
+++ b/libgcc/soft-fp/floatbitintsd.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert a _BitInt to _Decimal32.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#ifdef __BITINT_MAXWIDTH__
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_floatbitintsd __dpd_floatbitintsd
+#endif
extern _Decimal32 __bid_floatbitintsd (const UBILtype *, SItype);
_Decimal32
@@ -51,7 +54,11 @@ __bid_floatbitintsd (const UBILtype *i, SItype iprec)
}
if (iprec < 0)
{
- SItype n = sizeof (0ULL) * __CHAR_BIT__ + 1 - __builtin_clzll (~msb);
+ SItype n;
+ if (msb == ~(UBILtype) 0)
+ n = 1;
+ else
+ n = sizeof (0ULL) * __CHAR_BIT__ + 1 - __builtin_clzll (~msb);
aiprec = (in - 1) * BIL_TYPE_SIZE + n;
}
else if (msb == 0)
@@ -117,7 +124,8 @@ __bid_floatbitintsd (const UBILtype *i, SItype iprec)
}
else
{
- __builtin_memcpy (buf + BITINT_END (q_limbs - in + 1, 0), i,
+ __builtin_memcpy (buf + BITINT_END (q_limbs - in + 1, 0),
+ i + BITINT_END (1, 0),
(in - 1) * sizeof (UBILtype));
buf[BITINT_END (q_limbs - in, in - 1)] = msb;
if (iprec < 0)
@@ -210,6 +218,7 @@ __bid_floatbitintsd (const UBILtype *i, SItype iprec)
}
exponent += 101;
+#ifdef ENABLE_DECIMAL_BID_FORMAT
if (mantissa >= (USItype) 0x800000)
u.u = (((((iprec < 0) << 2) | (USItype) 3) << 29)
| (((USItype) exponent) << 21)
@@ -218,10 +227,34 @@ __bid_floatbitintsd (const UBILtype *i, SItype iprec)
u.u = ((((USItype) (iprec < 0)) << 31)
| (((USItype) exponent) << 23)
| mantissa);
+#else
+ u.u = mantissa;
+ mantissa = __dpd_b2dbitint[u.u % 1000];
+ u.u /= 1000;
+ mantissa |= ((USItype) __dpd_b2dbitint[u.u % 1000]) << 10;
+ u.u /= 1000;
+ if (u.u >= 8)
+ u.u = (((((iprec < 0) << 2) | (USItype) 3) << 29)
+ | (((USItype) exponent & (3 << 6)) << 21)
+ | ((u.u & 1) << 26)
+ | (((USItype) exponent & 63) << 20)
+ | mantissa);
+ else
+ u.u = ((((USItype) (iprec < 0)) << 31)
+ | (((USItype) exponent & (3 << 6)) << 23)
+ | (u.u << 26)
+ | (((USItype) exponent & 63) << 20)
+ | mantissa);
+#endif
if (inexact)
{
ui.u = ((((USItype) (iprec < 0)) << 31)
+#ifdef ENABLE_DECIMAL_BID_FORMAT
| (((USItype) (exponent - 1)) << 23)
+#else
+ | (((USItype) (exponent - 1) & (3 << 6)) << 23)
+ | (((USItype) (exponent - 1) & 63) << 20)
+#endif
| (inexact + 3));
__asm ("" : "+g" (u.d));
__asm ("" : "+g" (ui.d));
diff --git a/libgcc/soft-fp/floatbitinttd.c b/libgcc/soft-fp/floatbitinttd.c
index 5fff339..50b9e77 100644
--- a/libgcc/soft-fp/floatbitinttd.c
+++ b/libgcc/soft-fp/floatbitinttd.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert a _BitInt to _Decimal128.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#ifdef __BITINT_MAXWIDTH__
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_floatbitinttd __dpd_floatbitinttd
+#endif
extern _Decimal128 __bid_floatbitinttd (const UBILtype *, SItype);
_Decimal128
@@ -51,7 +54,11 @@ __bid_floatbitinttd (const UBILtype *i, SItype iprec)
}
if (iprec < 0)
{
- SItype n = sizeof (0ULL) * __CHAR_BIT__ + 1 - __builtin_clzll (~msb);
+ SItype n;
+ if (msb == ~(UBILtype) 0)
+ n = 1;
+ else
+ n = sizeof (0ULL) * __CHAR_BIT__ + 1 - __builtin_clzll (~msb);
aiprec = (in - 1) * BIL_TYPE_SIZE + n;
}
else if (msb == 0)
@@ -117,7 +124,8 @@ __bid_floatbitinttd (const UBILtype *i, SItype iprec)
}
else
{
- __builtin_memcpy (buf + BITINT_END (q_limbs - in + 1, 0), i,
+ __builtin_memcpy (buf + BITINT_END (q_limbs - in + 1, 0),
+ i + BITINT_END (1, 0),
(in - 1) * sizeof (UBILtype));
buf[BITINT_END (q_limbs - in, in - 1)] = msb;
if (iprec < 0)
@@ -253,15 +261,69 @@ __bid_floatbitinttd (const UBILtype *i, SItype iprec)
}
exponent += 6176;
+#ifdef ENABLE_DECIMAL_BID_FORMAT
u.u[__FLOAT_WORD_ORDER__ != __ORDER_BIG_ENDIAN__]
= ((((UDItype) (iprec < 0)) << 63)
| (((UDItype) exponent) << 49)
| mantissahi);
+#else
+#ifdef __SIZEOF_INT128__
+ unsigned __int128 m = mantissahi;
+#else
+ unsigned _BitInt(128) m = mantissahi;
+#endif
+ m = (m << 64) | mantissalo;
+ u.u[0] = m / 1000000000000000ULL;
+ u.u[1] = m % 1000000000000000ULL;
+ mantissalo = __dpd_b2dbitint[u.u[1] % 1000];
+ u.u[1] /= 1000;
+ mantissalo |= ((UDItype) __dpd_b2dbitint[u.u[1] % 1000]) << 10;
+ u.u[1] /= 1000;
+ mantissalo |= ((UDItype) __dpd_b2dbitint[u.u[1] % 1000]) << 20;
+ u.u[1] /= 1000;
+ mantissalo |= ((UDItype) __dpd_b2dbitint[u.u[1] % 1000]) << 30;
+ u.u[1] /= 1000;
+ mantissalo |= ((UDItype) __dpd_b2dbitint[u.u[1] % 1000]) << 40;
+ mantissalo |= ((UDItype) __dpd_b2dbitint[u.u[0] % 1000]) << 50;
+ u.u[0] /= 1000;
+ mantissahi = __dpd_b2dbitint[u.u[0] % 1000];
+ u.u[0] /= 1000;
+ mantissalo |= mantissahi << 60;
+ mantissahi >>= 4;
+ mantissahi |= ((UDItype) __dpd_b2dbitint[u.u[0] % 1000]) << 6;
+ u.u[0] /= 1000;
+ mantissahi |= ((UDItype) __dpd_b2dbitint[u.u[0] % 1000]) << 16;
+ u.u[0] /= 1000;
+ mantissahi |= ((UDItype) __dpd_b2dbitint[u.u[0] % 1000]) << 26;
+ u.u[0] /= 1000;
+ mantissahi |= ((UDItype) __dpd_b2dbitint[u.u[0] % 1000]) << 36;
+ u.u[0] /= 1000;
+ if (u.u[0] >= 8)
+ u.u[__FLOAT_WORD_ORDER__ != __ORDER_BIG_ENDIAN__]
+ = (((((iprec < 0) << 2) | (UDItype) 3) << 61)
+ | (((UDItype) exponent & (3 << 12)) << 47)
+ | ((u.u[0] & 1) << 58)
+ | (((UDItype) exponent & 4095) << 46)
+ | mantissahi);
+ else
+ u.u[__FLOAT_WORD_ORDER__ != __ORDER_BIG_ENDIAN__]
+ = ((((UDItype) (iprec < 0)) << 63)
+ | (((UDItype) exponent & (3 << 12)) << 49)
+ | (u.u[0] << 58)
+ | (((UDItype) exponent & 4095) << 46)
+ | mantissahi);
+#endif
u.u[__FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__] = mantissalo;
if (inexact)
{
ui.u[__FLOAT_WORD_ORDER__ != __ORDER_BIG_ENDIAN__]
+#ifdef ENABLE_DECIMAL_BID_FORMAT
= (((UDItype) (iprec < 0)) << 63) | (((UDItype) exponent - 1) << 49);
+#else
+ = ((((UDItype) (iprec < 0)) << 63)
+ | ((((UDItype) exponent - 1) & (3 << 12)) << 49)
+ | ((((UDItype) exponent - 1) & 4095) << 46));
+#endif
ui.u[__FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__] = inexact + 3;
__asm ("" : "+g" (u.d));
__asm ("" : "+g" (ui.d));
diff --git a/libgcc/soft-fp/floattidd.c b/libgcc/soft-fp/floattidd.c
index 31ad9d0..c4e569d 100644
--- a/libgcc/soft-fp/floattidd.c
+++ b/libgcc/soft-fp/floattidd.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert a 128bit signed integer to _Decimal64.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#if defined(__BITINT_MAXWIDTH__) && defined(__SIZEOF_INT128__)
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_floatbitintdd __dpd_floatbitintdd
+#define __bid_floattidd __dpd_floattidd
+#endif
extern _Decimal64 __bid_floatbitintdd (const UBILtype *, SItype);
extern _Decimal64 __bid_floattidd (TItype);
diff --git a/libgcc/soft-fp/floattisd.c b/libgcc/soft-fp/floattisd.c
index 37a24a3..641c32a 100644
--- a/libgcc/soft-fp/floattisd.c
+++ b/libgcc/soft-fp/floattisd.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert a 128bit signed integer to _Decimal32.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#if defined(__BITINT_MAXWIDTH__) && defined(__SIZEOF_INT128__)
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_floatbitintsd __dpd_floatbitintsd
+#define __bid_floattisd __dpd_floattisd
+#endif
extern _Decimal32 __bid_floatbitintsd (const UBILtype *, SItype);
extern _Decimal32 __bid_floattisd (TItype);
diff --git a/libgcc/soft-fp/floattitd.c b/libgcc/soft-fp/floattitd.c
index edc0b37..9d10ed7 100644
--- a/libgcc/soft-fp/floattitd.c
+++ b/libgcc/soft-fp/floattitd.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert a 128bit signed integer to _Decimal128.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#if defined(__BITINT_MAXWIDTH__) && defined(__SIZEOF_INT128__)
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_floatbitinttd __dpd_floatbitinttd
+#define __bid_floattitd __dpd_floattitd
+#endif
extern _Decimal128 __bid_floatbitinttd (const UBILtype *, SItype);
extern _Decimal128 __bid_floattitd (TItype);
diff --git a/libgcc/soft-fp/floatuntidd.c b/libgcc/soft-fp/floatuntidd.c
index ea4108f..f977400 100644
--- a/libgcc/soft-fp/floatuntidd.c
+++ b/libgcc/soft-fp/floatuntidd.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert a 128bit unsigned integer to _Decimal64.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#if defined(__BITINT_MAXWIDTH__) && defined(__SIZEOF_INT128__)
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_floatbitintdd __dpd_floatbitintdd
+#define __bid_floatunstidd __dpd_floatunstidd
+#endif
extern _Decimal64 __bid_floatbitintdd (const UBILtype *, SItype);
extern _Decimal64 __bid_floatunstidd (UTItype);
diff --git a/libgcc/soft-fp/floatuntisd.c b/libgcc/soft-fp/floatuntisd.c
index d907353e..cc00d83 100644
--- a/libgcc/soft-fp/floatuntisd.c
+++ b/libgcc/soft-fp/floatuntisd.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert a 128bit unsigned integer to _Decimal32.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#if defined(__BITINT_MAXWIDTH__) && defined(__SIZEOF_INT128__)
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_floatbitintsd __dpd_floatbitintsd
+#define __bid_floatunstisd __dpd_floatunstisd
+#endif
extern _Decimal32 __bid_floatbitintsd (const UBILtype *, SItype);
extern _Decimal32 __bid_floatunstisd (UTItype);
diff --git a/libgcc/soft-fp/floatuntitd.c b/libgcc/soft-fp/floatuntitd.c
index 5731f2a..551166e 100644
--- a/libgcc/soft-fp/floatuntitd.c
+++ b/libgcc/soft-fp/floatuntitd.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Convert a 128bit unsigned integer to _Decimal128.
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bitint.h"
#if defined(__BITINT_MAXWIDTH__) && defined(__SIZEOF_INT128__)
+#ifndef ENABLE_DECIMAL_BID_FORMAT
+#define __bid_floatbitinttd __dpd_floatbitinttd
+#define __bid_floatunstitd __dpd_floatunstitd
+#endif
extern _Decimal128 __bid_floatbitinttd (const UBILtype *, SItype);
extern _Decimal128 __bid_floatunstitd (UTItype);
diff --git a/libgcc/strub.c b/libgcc/strub.c
index 789e929..b05807d 100644
--- a/libgcc/strub.c
+++ b/libgcc/strub.c
@@ -1,5 +1,5 @@
/* Stack scrubbing infrastructure
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
Contributed by Alexandre Oliva <oliva@adacore.com>
This file is part of GCC.
diff --git a/libgcc/sync.c b/libgcc/sync.c
index 6ffe88a..f2d35ec 100644
--- a/libgcc/sync.c
+++ b/libgcc/sync.c
@@ -1,5 +1,5 @@
/* Out-of-line libgcc versions of __sync_* builtins. */
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/udivhi3.c b/libgcc/udivhi3.c
index cc3afed..781c36a 100644
--- a/libgcc/udivhi3.c
+++ b/libgcc/udivhi3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/udivmod.c b/libgcc/udivmod.c
index 2429779..9be9e70 100644
--- a/libgcc/udivmod.c
+++ b/libgcc/udivmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/udivmodhi4.c b/libgcc/udivmodhi4.c
index 0fa4858..c1db53c 100644
--- a/libgcc/udivmodhi4.c
+++ b/libgcc/udivmodhi4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/udivmodsi4.c b/libgcc/udivmodsi4.c
index 9e70897..0449369 100644
--- a/libgcc/udivmodsi4.c
+++ b/libgcc/udivmodsi4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind-arm-common.inc b/libgcc/unwind-arm-common.inc
index 576f7e9..cce3888 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is free software; you can redistribute it and/or modify it
@@ -52,8 +52,6 @@
/* Definitions for C++ runtime support routines. We make these weak
declarations to avoid pulling in libsupc++ unnecessarily. */
-typedef unsigned char bool;
-
typedef struct _ZSt9type_info type_info; /* This names C++ type_info type */
enum __cxa_type_match_result
{
diff --git a/libgcc/unwind-c.c b/libgcc/unwind-c.c
index 63c1dee..f5faa00 100644
--- a/libgcc/unwind-c.c
+++ b/libgcc/unwind-c.c
@@ -1,5 +1,5 @@
/* Supporting functions for C exception handling.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldy@quesejoda.com>.
Shamelessly stolen from the Java front end.
diff --git a/libgcc/unwind-compat.c b/libgcc/unwind-compat.c
index 8b94854..c417797 100644
--- a/libgcc/unwind-compat.c
+++ b/libgcc/unwind-compat.c
@@ -1,5 +1,5 @@
/* Backward compatibility unwind routines.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind-compat.h b/libgcc/unwind-compat.h
index 09d7c73..1f13538 100644
--- a/libgcc/unwind-compat.h
+++ b/libgcc/unwind-compat.h
@@ -1,5 +1,5 @@
/* Backward compatibility unwind routines.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind-dw2-btree.h b/libgcc/unwind-dw2-btree.h
index 63a494f..5e81740 100644
--- a/libgcc/unwind-dw2-btree.h
+++ b/libgcc/unwind-dw2-btree.h
@@ -1,5 +1,5 @@
/* Lock-free btree for manually registered unwind frames. */
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
Contributed by Thomas Neumann
This file is part of GCC.
@@ -31,12 +31,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
// Common logic for version locks.
struct version_lock
{
- // The lock itself. The lowest bit indicates an exclusive lock,
- // the second bit indicates waiting threads. All other bits are
+ // The lock itself. The lowest bit indicates an exclusive lock,
+ // the second bit indicates waiting threads. All other bits are
// used as counter to recognize changes.
// Overflows are okay here, we must only prevent overflow to the
// same value within one lock_optimistic/validate
- // range. Even on 32 bit platforms that would require 1 billion
+ // range. Even on 32 bit platforms that would require 1 billion
// frame registrations within the time span of a few assembler
// instructions.
uintptr_type version_lock;
@@ -60,10 +60,10 @@ version_lock_initialize_locked_exclusive (struct version_lock *vl)
static inline bool
version_lock_try_lock_exclusive (struct version_lock *vl)
{
- uintptr_type state = __atomic_load_n (&(vl->version_lock), __ATOMIC_SEQ_CST);
+ uintptr_type state = __atomic_load_n (&vl->version_lock, __ATOMIC_SEQ_CST);
if (state & 1)
return false;
- return __atomic_compare_exchange_n (&(vl->version_lock), &state, state | 1,
+ return __atomic_compare_exchange_n (&vl->version_lock, &state, state | 1,
false, __ATOMIC_SEQ_CST,
__ATOMIC_SEQ_CST);
}
@@ -78,10 +78,10 @@ restart:
// We should virtually never get contention here, as frame
// changes are rare.
- uintptr_type state = __atomic_load_n (&(vl->version_lock), __ATOMIC_SEQ_CST);
+ uintptr_type state = __atomic_load_n (&vl->version_lock, __ATOMIC_SEQ_CST);
if (!(state & 1))
{
- if (__atomic_compare_exchange_n (&(vl->version_lock), &state, state | 1,
+ if (__atomic_compare_exchange_n (&vl->version_lock, &state, state | 1,
false, __ATOMIC_SEQ_CST,
__ATOMIC_SEQ_CST))
return;
@@ -90,13 +90,13 @@ restart:
// We did get contention, wait properly.
#ifdef __GTHREAD_HAS_COND
__gthread_mutex_lock (&version_lock_mutex);
- state = __atomic_load_n (&(vl->version_lock), __ATOMIC_SEQ_CST);
+ state = __atomic_load_n (&vl->version_lock, __ATOMIC_SEQ_CST);
while (true)
{
// Check if the lock is still held.
if (!(state & 1))
{
- if (__atomic_compare_exchange_n (&(vl->version_lock), &state,
+ if (__atomic_compare_exchange_n (&vl->version_lock, &state,
state | 1, false, __ATOMIC_SEQ_CST,
__ATOMIC_SEQ_CST))
{
@@ -104,15 +104,13 @@ restart:
return;
}
else
- {
- continue;
- }
+ continue;
}
// Register waiting thread.
if (!(state & 2))
{
- if (!__atomic_compare_exchange_n (&(vl->version_lock), &state,
+ if (!__atomic_compare_exchange_n (&vl->version_lock, &state,
state | 2, false, __ATOMIC_SEQ_CST,
__ATOMIC_SEQ_CST))
continue;
@@ -120,7 +118,7 @@ restart:
// And sleep.
__gthread_cond_wait (&version_lock_cond, &version_lock_mutex);
- state = __atomic_load_n (&(vl->version_lock), __ATOMIC_SEQ_CST);
+ state = __atomic_load_n (&vl->version_lock, __ATOMIC_SEQ_CST);
}
#else
// Spin if we do not have condition variables available.
@@ -133,15 +131,15 @@ restart:
static void
version_lock_unlock_exclusive (struct version_lock *vl)
{
- // increase version, reset exclusive lock bits
- uintptr_type state = __atomic_load_n (&(vl->version_lock), __ATOMIC_SEQ_CST);
- uintptr_type ns = (state + 4) & (~((uintptr_type) 3));
- state = __atomic_exchange_n (&(vl->version_lock), ns, __ATOMIC_SEQ_CST);
+ // Increase version, reset exclusive lock bits.
+ uintptr_type state = __atomic_load_n (&vl->version_lock, __ATOMIC_SEQ_CST);
+ uintptr_type ns = (state + 4) & ~(uintptr_type) 3;
+ state = __atomic_exchange_n (&vl->version_lock, ns, __ATOMIC_SEQ_CST);
#ifdef __GTHREAD_HAS_COND
if (state & 2)
{
- // Wake up waiting threads. This should be extremely rare.
+ // Wake up waiting threads. This should be extremely rare.
__gthread_mutex_lock (&version_lock_mutex);
__gthread_cond_broadcast (&version_lock_cond);
__gthread_mutex_unlock (&version_lock_mutex);
@@ -149,12 +147,12 @@ version_lock_unlock_exclusive (struct version_lock *vl)
#endif
}
-// Acquire an optimistic "lock". Note that this does not lock at all, it
+// Acquire an optimistic "lock". Note that this does not lock at all, it
// only allows for validation later.
static inline bool
version_lock_lock_optimistic (const struct version_lock *vl, uintptr_type *lock)
{
- uintptr_type state = __atomic_load_n (&(vl->version_lock), __ATOMIC_SEQ_CST);
+ uintptr_type state = __atomic_load_n (&vl->version_lock, __ATOMIC_SEQ_CST);
*lock = state;
// Acquiring the lock fails when there is currently an exclusive lock.
@@ -171,23 +169,23 @@ version_lock_validate (const struct version_lock *vl, uintptr_type lock)
__atomic_thread_fence (__ATOMIC_ACQUIRE);
// Check that the node is still in the same state.
- uintptr_type state = __atomic_load_n (&(vl->version_lock), __ATOMIC_SEQ_CST);
- return (state == lock);
+ uintptr_type state = __atomic_load_n (&vl->version_lock, __ATOMIC_SEQ_CST);
+ return state == lock;
}
// The largest possible separator value.
-static const uintptr_type max_separator = ~((uintptr_type) (0));
+static const uintptr_type max_separator = ~(uintptr_type) 0;
struct btree_node;
-// Inner entry. The child tree contains all entries <= separator.
+// Inner entry. The child tree contains all entries <= separator.
struct inner_entry
{
uintptr_type separator;
struct btree_node *child;
};
-// Leaf entry. Stores an object entry.
+// Leaf entry. Stores an object entry.
struct leaf_entry
{
uintptr_type base, size;
@@ -202,7 +200,7 @@ enum node_type
btree_node_free
};
-// Node sizes. Chosen such that the result size is roughly 256 bytes.
+// Node sizes. Chosen such that the result size is roughly 256 bytes.
#define max_fanout_inner 15
#define max_fanout_leaf 10
@@ -243,8 +241,8 @@ btree_node_is_leaf (const struct btree_node *n)
static inline bool
btree_node_needs_merge (const struct btree_node *n)
{
- return n->entry_count < (btree_node_is_inner (n) ? (max_fanout_inner / 2)
- : (max_fanout_leaf / 2));
+ return n->entry_count < (btree_node_is_inner (n) ? max_fanout_inner / 2
+ : max_fanout_leaf / 2);
}
// Get the fence key for inner nodes.
@@ -279,36 +277,36 @@ btree_node_find_leaf_slot (const struct btree_node *n, uintptr_type value)
static inline bool
btree_node_try_lock_exclusive (struct btree_node *n)
{
- return version_lock_try_lock_exclusive (&(n->version_lock));
+ return version_lock_try_lock_exclusive (&n->version_lock);
}
// Lock the node exclusive, blocking as needed.
static inline void
btree_node_lock_exclusive (struct btree_node *n)
{
- version_lock_lock_exclusive (&(n->version_lock));
+ version_lock_lock_exclusive (&n->version_lock);
}
// Release a locked node and increase the version lock.
static inline void
btree_node_unlock_exclusive (struct btree_node *n)
{
- version_lock_unlock_exclusive (&(n->version_lock));
+ version_lock_unlock_exclusive (&n->version_lock);
}
-// Acquire an optimistic "lock". Note that this does not lock at all, it
+// Acquire an optimistic "lock". Note that this does not lock at all, it
// only allows for validation later.
static inline bool
btree_node_lock_optimistic (const struct btree_node *n, uintptr_type *lock)
{
- return version_lock_lock_optimistic (&(n->version_lock), lock);
+ return version_lock_lock_optimistic (&n->version_lock, lock);
}
// Validate a previously acquire lock.
static inline bool
btree_node_validate (const struct btree_node *n, uintptr_type lock)
{
- return version_lock_validate (&(n->version_lock), lock);
+ return version_lock_validate (&n->version_lock, lock);
}
// Insert a new separator after splitting.
@@ -326,7 +324,7 @@ btree_node_update_separator_after_split (struct btree_node *n,
n->entry_count++;
}
-// A btree. Suitable for static initialization, all members are zero at the
+// A btree. Suitable for static initialization, all members are zero at the
// beginning.
struct btree
{
@@ -338,7 +336,7 @@ struct btree
struct version_lock root_lock;
};
-// Initialize a btree. Not actually used, just for exposition.
+// Initialize a btree. Not actually used, just for exposition.
static inline void
btree_init (struct btree *t)
{
@@ -356,7 +354,7 @@ btree_destroy (struct btree *t)
{
// Disable the mechanism before cleaning up.
struct btree_node *old_root
- = __atomic_exchange_n (&(t->root), NULL, __ATOMIC_SEQ_CST);
+ = __atomic_exchange_n (&t->root, NULL, __ATOMIC_SEQ_CST);
if (old_root)
btree_release_tree_recursively (t, old_root);
@@ -369,7 +367,7 @@ btree_destroy (struct btree *t)
}
}
-// Allocate a node. This node will be returned in locked exclusive state.
+// Allocate a node. This node will be returned in locked exclusive state.
static struct btree_node *
btree_allocate_node (struct btree *t, bool inner)
{
@@ -377,7 +375,7 @@ btree_allocate_node (struct btree *t, bool inner)
{
// Try the free list first.
struct btree_node *next_free
- = __atomic_load_n (&(t->free_list), __ATOMIC_SEQ_CST);
+ = __atomic_load_n (&t->free_list, __ATOMIC_SEQ_CST);
if (next_free)
{
if (!btree_node_try_lock_exclusive (next_free))
@@ -387,9 +385,10 @@ btree_allocate_node (struct btree *t, bool inner)
if (next_free->type == btree_node_free)
{
struct btree_node *ex = next_free;
- if (__atomic_compare_exchange_n (
- &(t->free_list), &ex, next_free->content.children[0].child,
- false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST))
+ if (__atomic_compare_exchange_n (&t->free_list, &ex,
+ ex->content.children[0].child,
+ false, __ATOMIC_SEQ_CST,
+ __ATOMIC_SEQ_CST))
{
next_free->entry_count = 0;
next_free->type = inner ? btree_node_inner : btree_node_leaf;
@@ -402,35 +401,34 @@ btree_allocate_node (struct btree *t, bool inner)
// No free node available, allocate a new one.
struct btree_node *new_node
- = (struct btree_node *) (malloc (sizeof (struct btree_node)));
- version_lock_initialize_locked_exclusive (
- &(new_node->version_lock)); // initialize the node in locked state.
+ = (struct btree_node *) malloc (sizeof (struct btree_node));
+ // Initialize the node in locked state.
+ version_lock_initialize_locked_exclusive (&new_node->version_lock);
new_node->entry_count = 0;
new_node->type = inner ? btree_node_inner : btree_node_leaf;
return new_node;
}
}
-// Release a node. This node must be currently locked exclusively and will
+// Release a node. This node must be currently locked exclusively and will
// be placed in the free list.
static void
btree_release_node (struct btree *t, struct btree_node *node)
{
// We cannot release the memory immediately because there might still be
- // concurrent readers on that node. Put it in the free list instead.
+ // concurrent readers on that node. Put it in the free list instead.
node->type = btree_node_free;
struct btree_node *next_free
- = __atomic_load_n (&(t->free_list), __ATOMIC_SEQ_CST);
+ = __atomic_load_n (&t->free_list, __ATOMIC_SEQ_CST);
do
- {
- node->content.children[0].child = next_free;
- } while (!__atomic_compare_exchange_n (&(t->free_list), &next_free, node,
- false, __ATOMIC_SEQ_CST,
- __ATOMIC_SEQ_CST));
+ node->content.children[0].child = next_free;
+ while (!__atomic_compare_exchange_n (&t->free_list, &next_free, node,
+ false, __ATOMIC_SEQ_CST,
+ __ATOMIC_SEQ_CST));
btree_node_unlock_exclusive (node);
}
-// Recursively release a tree. The btree is by design very shallow, thus
+// Recursively release a tree. The btree is by design very shallow, thus
// we can risk recursion here.
static void
btree_release_tree_recursively (struct btree *t, struct btree_node *node)
@@ -450,7 +448,7 @@ btree_handle_root_split (struct btree *t, struct btree_node **node,
struct btree_node **parent)
{
// We want to keep the root pointer stable to allow for contention
- // free reads. Thus, we split the root by first moving the content
+ // free reads. Thus, we split the root by first moving the content
// of the root node to a new node, and then split that new node.
if (!*parent)
{
@@ -474,7 +472,8 @@ btree_handle_root_split (struct btree *t, struct btree_node **node,
// Split an inner node.
static void
btree_split_inner (struct btree *t, struct btree_node **inner,
- struct btree_node **parent, uintptr_type target)
+ struct btree_node **parent, uintptr_type target,
+ uintptr_type size)
{
// Check for the root.
btree_handle_root_split (t, inner, parent);
@@ -490,6 +489,9 @@ btree_split_inner (struct btree *t, struct btree_node **inner,
= left_inner->content.children[split + index];
left_inner->entry_count = split;
uintptr_type left_fence = btree_node_get_fence_key (left_inner);
+ if (left_fence >= target && left_fence < target + size - 1)
+ // See the PR119151 comment in btree_insert.
+ left_fence = target + size - 1;
btree_node_update_separator_after_split (*parent, right_fence, left_fence,
right_inner);
if (target <= left_fence)
@@ -543,12 +545,12 @@ static struct btree_node *
btree_merge_node (struct btree *t, unsigned child_slot,
struct btree_node *parent, uintptr_type target)
{
- // Choose the emptiest neighbor and lock both. The target child is already
+ // Choose the emptiest neighbor and lock both. The target child is already
// locked.
unsigned left_slot;
struct btree_node *left_node, *right_node;
- if ((child_slot == 0)
- || (((child_slot + 1) < parent->entry_count)
+ if (child_slot == 0
+ || (child_slot + 1 < parent->entry_count
&& (parent->content.children[child_slot + 1].child->entry_count
< parent->content.children[child_slot - 1].child->entry_count)))
{
@@ -574,7 +576,7 @@ btree_merge_node (struct btree *t, unsigned child_slot,
// Merge into the parent?
if (parent->entry_count == 2)
{
- // Merge children into parent. This can only happen at the root.
+ // Merge children into parent. This can only happen at the root.
if (btree_node_is_inner (left_node))
{
for (unsigned index = 0; index != left_node->entry_count; ++index)
@@ -696,13 +698,9 @@ btree_merge_node (struct btree *t, unsigned child_slot,
}
uintptr_type left_fence;
if (btree_node_is_leaf (left_node))
- {
- left_fence = right_node->content.entries[0].base - 1;
- }
+ left_fence = right_node->content.entries[0].base - 1;
else
- {
- left_fence = btree_node_get_fence_key (left_node);
- }
+ left_fence = btree_node_get_fence_key (left_node);
parent->content.children[left_slot].separator = left_fence;
btree_node_unlock_exclusive (parent);
if (target <= left_fence)
@@ -728,19 +726,13 @@ btree_insert (struct btree *t, uintptr_type base, uintptr_type size,
// Access the root.
struct btree_node *iter, *parent = NULL;
- {
- version_lock_lock_exclusive (&(t->root_lock));
- iter = t->root;
- if (iter)
- {
- btree_node_lock_exclusive (iter);
- }
- else
- {
- t->root = iter = btree_allocate_node (t, false);
- }
- version_lock_unlock_exclusive (&(t->root_lock));
- }
+ version_lock_lock_exclusive (&t->root_lock);
+ iter = t->root;
+ if (iter)
+ btree_node_lock_exclusive (iter);
+ else
+ t->root = iter = btree_allocate_node (t, false);
+ version_lock_unlock_exclusive (&t->root_lock);
// Walk down the btree with classic lock coupling and eager splits.
// Strictly speaking this is not performance optimal, we could use
@@ -753,13 +745,28 @@ btree_insert (struct btree *t, uintptr_type base, uintptr_type size,
{
// Use eager splits to avoid lock coupling up.
if (iter->entry_count == max_fanout_inner)
- btree_split_inner (t, &iter, &parent, base);
+ btree_split_inner (t, &iter, &parent, base, size);
unsigned slot = btree_node_find_inner_slot (iter, base);
if (parent)
btree_node_unlock_exclusive (parent);
parent = iter;
fence = iter->content.children[slot].separator;
+ if (fence < base + size - 1)
+ // The separator was set to the base - 1 of the leftmost leaf child
+ // at some point but such an entry could have been removed afterwards.
+ // As both insertion and removal are just walking down the tree with
+ // only a few current nodes locked at a time, updating the separator
+ // on removal is not possible, especially because btree_remove does
+ // not know the size until it reaches leaf node. We must ensure that
+ // the separator is not in a middle of some entry though, as
+ // btree_lookup can look up any address in the entry's range and if
+ // the separator is in the middle, addresses below it or equal to it
+ // would be found while addresses above it would result in failed
+ // lookup. Update the separator now. Assumption that users
+ // ensure no overlapping registered ranges, there should be no
+ // current entry for any address in the range. See PR119151.
+ fence = iter->content.children[slot].separator = base + size - 1;
iter = iter->content.children[slot].child;
btree_node_lock_exclusive (iter);
}
@@ -772,7 +779,7 @@ btree_insert (struct btree *t, uintptr_type base, uintptr_type size,
// Insert in node.
unsigned slot = btree_node_find_leaf_slot (iter, base);
- if ((slot < iter->entry_count) && (iter->content.entries[slot].base == base))
+ if (slot < iter->entry_count && iter->content.entries[slot].base == base)
{
// Duplicate entry, this should never happen.
btree_node_unlock_exclusive (iter);
@@ -780,7 +787,7 @@ btree_insert (struct btree *t, uintptr_type base, uintptr_type size,
}
for (unsigned index = iter->entry_count; index > slot; --index)
iter->content.entries[index] = iter->content.entries[index - 1];
- struct leaf_entry *e = &(iter->content.entries[slot]);
+ struct leaf_entry *e = &iter->content.entries[slot];
e->base = base;
e->size = size;
e->ob = ob;
@@ -794,11 +801,11 @@ static struct object *
btree_remove (struct btree *t, uintptr_type base)
{
// Access the root.
- version_lock_lock_exclusive (&(t->root_lock));
+ version_lock_lock_exclusive (&t->root_lock);
struct btree_node *iter = t->root;
if (iter)
btree_node_lock_exclusive (iter);
- version_lock_unlock_exclusive (&(t->root_lock));
+ version_lock_unlock_exclusive (&t->root_lock);
if (!iter)
return NULL;
@@ -810,10 +817,8 @@ btree_remove (struct btree *t, uintptr_type base)
struct btree_node *next = iter->content.children[slot].child;
btree_node_lock_exclusive (next);
if (btree_node_needs_merge (next))
- {
- // Use eager merges to avoid lock coupling up.
- iter = btree_merge_node (t, slot, iter, base);
- }
+ // Use eager merges to avoid lock coupling up.
+ iter = btree_merge_node (t, slot, iter, base);
else
{
btree_node_unlock_exclusive (iter);
@@ -823,7 +828,7 @@ btree_remove (struct btree *t, uintptr_type base)
// Remove existing entry.
unsigned slot = btree_node_find_leaf_slot (iter, base);
- if ((slot >= iter->entry_count) || (iter->content.entries[slot].base != base))
+ if (slot >= iter->entry_count || iter->content.entries[slot].base != base)
{
// Not found, this should never happen.
btree_node_unlock_exclusive (iter);
@@ -856,35 +861,34 @@ btree_lookup (const struct btree *t, uintptr_type target_addr)
return NULL;
// The unwinding tables are mostly static, they only change when
- // frames are added or removed. This makes it extremely unlikely that they
- // change during a given unwinding sequence. Thus, we optimize for the
- // contention free case and use optimistic lock coupling. This does not
- // require any writes to shared state, instead we validate every read. It is
+ // frames are added or removed. This makes it extremely unlikely that they
+ // change during a given unwinding sequence. Thus, we optimize for the
+ // contention free case and use optimistic lock coupling. This does not
+ // require any writes to shared state, instead we validate every read. It is
// important that we do not trust any value that we have read until we call
- // validate again. Data can change at arbitrary points in time, thus we always
+ // validate again. Data can change at arbitrary points in time, thus we always
// copy something into a local variable and validate again before acting on
- // the read. In the unlikely event that we encounter a concurrent change we
+ // the read. In the unlikely event that we encounter a concurrent change we
// simply restart and try again.
restart:
struct btree_node *iter;
uintptr_type lock;
- {
- // Accessing the root node requires defending against concurrent pointer
- // changes Thus we couple rootLock -> lock on root node -> validate rootLock
- if (!version_lock_lock_optimistic (&(t->root_lock), &lock))
- goto restart;
- iter = RLOAD (t->root);
- if (!version_lock_validate (&(t->root_lock), lock))
- goto restart;
- if (!iter)
- return NULL;
- uintptr_type child_lock;
- if ((!btree_node_lock_optimistic (iter, &child_lock))
- || (!version_lock_validate (&(t->root_lock), lock)))
- goto restart;
- lock = child_lock;
- }
+ // Accessing the root node requires defending against concurrent pointer
+ // changes. Thus we couple root_lock -> lock on root node -> validate
+ // root_lock.
+ if (!version_lock_lock_optimistic (&t->root_lock, &lock))
+ goto restart;
+ iter = RLOAD (t->root);
+ if (!version_lock_validate (&t->root_lock, lock))
+ goto restart;
+ if (!iter)
+ return NULL;
+ uintptr_type child_root_lock;
+ if (!btree_node_lock_optimistic (iter, &child_root_lock)
+ || !version_lock_validate (&t->root_lock, lock))
+ goto restart;
+ lock = child_root_lock;
// Now we can walk down towards the right leaf node.
while (true)
@@ -901,9 +905,9 @@ restart:
// We cannot call find_inner_slot here because we need (relaxed)
// atomic reads here.
unsigned slot = 0;
- while (
- ((slot + 1) < entry_count)
- && (RLOAD (iter->content.children[slot].separator) < target_addr))
+ while (slot + 1 < entry_count
+ && (RLOAD (iter->content.children[slot].separator)
+ < target_addr))
++slot;
struct btree_node *child = RLOAD (iter->content.children[slot].child);
if (!btree_node_validate (iter, lock))
@@ -915,10 +919,10 @@ restart:
if (!btree_node_lock_optimistic (child, &child_lock))
goto restart;
if (!btree_node_validate (iter, lock))
- goto restart; // make sure we still point to the correct node after
+ goto restart; // Make sure we still point to the correct node after
// acquiring the optimistic lock.
- // Go down
+ // Go down.
iter = child;
lock = child_lock;
}
@@ -927,9 +931,9 @@ restart:
// We cannot call find_leaf_slot here because we need (relaxed)
// atomic reads here.
unsigned slot = 0;
- while (((slot + 1) < entry_count)
+ while (slot + 1 < entry_count
&& (RLOAD (iter->content.entries[slot].base)
- + RLOAD (iter->content.entries[slot].size)
+ + RLOAD (iter->content.entries[slot].size)
<= target_addr))
++slot;
struct leaf_entry entry;
@@ -940,11 +944,9 @@ restart:
goto restart;
// Check if we have a hit.
- if ((entry.base <= target_addr)
- && (target_addr < entry.base + entry.size))
- {
- return entry.ob;
- }
+ if (entry.base <= target_addr
+ && target_addr < entry.base + entry.size)
+ return entry.ob;
return NULL;
}
}
diff --git a/libgcc/unwind-dw2-execute_cfa.h b/libgcc/unwind-dw2-execute_cfa.h
index a6b249f..2ecb86e 100644
--- a/libgcc/unwind-dw2-execute_cfa.h
+++ b/libgcc/unwind-dw2-execute_cfa.h
@@ -1,5 +1,5 @@
/* DWARF2 exception handling CFA execution engine.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -271,23 +271,25 @@
fs->regs.how[reg] = REG_SAVED_VAL_EXP;
fs->regs.reg[reg].loc.exp = insn_ptr;
}
+ /* Don't execute the expression, but jump over it by adding
+ DW_FORM_block's size to insn_ptr. */
insn_ptr = read_uleb128 (insn_ptr, &utmp);
insn_ptr += utmp;
break;
- case DW_CFA_GNU_window_save:
#if defined (__aarch64__) && !defined (__ILP32__)
- /* This CFA is multiplexed with Sparc. On AArch64 it's used to toggle
- return address signing status. REG_UNSAVED/REG_UNSAVED_ARCHEXT
- mean RA signing is disabled/enabled. */
- reg = DWARF_REGNUM_AARCH64_RA_STATE;
- gcc_assert (fs->regs.how[reg] == REG_UNSAVED
- || fs->regs.how[reg] == REG_UNSAVED_ARCHEXT);
- if (fs->regs.how[reg] == REG_UNSAVED)
- fs->regs.how[reg] = REG_UNSAVED_ARCHEXT;
- else
- fs->regs.how[reg] = REG_UNSAVED;
+ case DW_CFA_AARCH64_negate_ra_state:
+ /* This CFA is multiplexed with SPARC.
+ On AArch64 it's used to toggle the status of return address signing
+ with SP as a diversifier.
+ - REG_ARCHEXT means that the RA state register in FS contains a
+ valid value, and that no other DWARF directive has changed the
+ value of this register.
+ - any other value is not compatible with negating the RA state. */
+ aarch64_fs_ra_state_toggle (fs);
+ break;
#else
+ case DW_CFA_GNU_window_save:
/* ??? Hardcoded for SPARC register window configuration. */
if (__LIBGCC_DWARF_FRAME_REGISTERS__ >= 32)
for (reg = 16; reg < 32; ++reg)
@@ -295,8 +297,8 @@
fs->regs.how[reg] = REG_SAVED_OFFSET;
fs->regs.reg[reg].loc.offset = (reg - 16) * sizeof (void *);
}
-#endif
break;
+#endif
case DW_CFA_GNU_args_size:
insn_ptr = read_uleb128 (insn_ptr, &utmp);
diff --git a/libgcc/unwind-dw2-fde-compat.c b/libgcc/unwind-dw2-fde-compat.c
index d46a69f..ec2a438 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 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 57d0c881..5c19838 100644
--- a/libgcc/unwind-dw2-fde-dip.c
+++ b/libgcc/unwind-dw2-fde-dip.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>.
This file is part of GCC.
@@ -347,7 +347,7 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
__RELOC_POINTER (p_eh_frame_hdr->p_vaddr, load_base);
#ifdef CRT_GET_RFIB_DATA
-# if defined __i386__ || defined __nios2__
+# if defined __i386__
data->dbase = NULL;
if (p_dynamic)
{
@@ -543,9 +543,8 @@ _Unwind_Find_FDE (void *pc, struct dwarf_eh_bases *bases)
return ret;
/* Use DLFO_STRUCT_HAS_EH_DBASE as a proxy for the existence of a glibc-style
- _dl_find_object function. However, do not use _dl_find_object on nios2,
- which uses the GOT address as the base for DW_EH_PE_datarel instead. */
-#if defined(DLFO_STRUCT_HAS_EH_DBASE) && !defined(__nios2__)
+ _dl_find_object function. */
+#if defined(DLFO_STRUCT_HAS_EH_DBASE)
{
struct dl_find_object dlfo;
if (_dl_find_object (pc, &dlfo) == 0 && dlfo.dlfo_eh_frame != NULL)
diff --git a/libgcc/unwind-dw2-fde.c b/libgcc/unwind-dw2-fde.c
index eb8f69e..cdfd397 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Jason Merrill <jason@cygnus.com>.
This file is part of GCC.
diff --git a/libgcc/unwind-dw2-fde.h b/libgcc/unwind-dw2-fde.h
index 94db68d..b040b03 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-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 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 0849e89..883b1c7 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -68,7 +68,7 @@
waste. However, some runtime libraries supplied with ICC do contain such
an unorthodox transition, as well as the unwind info to match. This loss
of register restoration doesn't matter in practice, because the exception
- is caught in the native unix abi, where all of the xmm registers are
+ is caught in the native unix abi, where all of the xmm registers are
call clobbered.
Ideally, we'd record some bit to notice when we're failing to restore some
@@ -501,11 +501,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;
- }
+
+#if defined(MD_ARCH_EXTENSION_CIE_AUG_HANDLER)
+ else if (MD_ARCH_EXTENSION_CIE_AUG_HANDLER (fs, aug[0]))
+ aug += 1;
+#endif
/* Otherwise we have an unknown augmentation string.
Bail unless we saw a 'z' prefix. */
@@ -996,6 +996,9 @@ uw_frame_state_for (struct _Unwind_Context *context, _Unwind_FrameState *fs)
memset (&fs->regs.how[0], 0,
sizeof (*fs) - offsetof (_Unwind_FrameState, regs.how[0]));
+#if defined(MD_ARCH_EXTENSION_FRAME_INIT)
+ MD_ARCH_EXTENSION_FRAME_INIT (context, fs);
+#endif
context->args_size = 0;
context->lsda = 0;
@@ -1197,7 +1200,11 @@ uw_update_context_1 (struct _Unwind_Context *context, _Unwind_FrameState *fs)
{
case REG_UNSAVED:
case REG_UNDEFINED:
- case REG_UNSAVED_ARCHEXT:
+ /* If the value depends on an augmenter, then there is no processing
+ to do here, and the value computation should be delayed until the
+ architecture handler computes the value correctly based on the
+ augmenter information. */
+ case REG_ARCHEXT:
break;
case REG_SAVED_OFFSET:
@@ -1416,6 +1423,11 @@ uw_install_context_1 (struct _Unwind_Context *current,
void *c = (void *) (_Unwind_Internal_Ptr) current->reg[i];
void *t = (void *) (_Unwind_Internal_Ptr)target->reg[i];
+#ifdef MD_FRAME_LOCAL_REGISTER_P
+ if (MD_FRAME_LOCAL_REGISTER_P (i))
+ continue;
+#endif
+
gcc_assert (current->by_value[i] == 0);
if (target->by_value[i] && c)
{
diff --git a/libgcc/unwind-dw2.h b/libgcc/unwind-dw2.h
index 0dd8611..b6dac75 100644
--- a/libgcc/unwind-dw2.h
+++ b/libgcc/unwind-dw2.h
@@ -1,5 +1,5 @@
/* DWARF2 frame unwind data structure.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GCC.
@@ -22,16 +22,19 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
-enum {
+#include "md-unwind-def.h"
+
+enum register_rule
+{
REG_UNSAVED,
REG_SAVED_OFFSET,
REG_SAVED_REG,
REG_SAVED_EXP,
REG_SAVED_VAL_OFFSET,
REG_SAVED_VAL_EXP,
- REG_UNSAVED_ARCHEXT, /* Target specific extension. */
+ REG_ARCHEXT, /* Target specific extension. */
REG_UNDEFINED
-};
+} __attribute__((packed));
/* The result of interpreting the frame unwind info for a frame.
This is all symbolic at this point, as none of the values can
@@ -49,7 +52,7 @@ typedef struct
const unsigned char *exp;
} loc;
} reg[__LIBGCC_DWARF_FRAME_REGISTERS__+1];
- unsigned char how[__LIBGCC_DWARF_FRAME_REGISTERS__+1];
+ enum register_rule how[__LIBGCC_DWARF_FRAME_REGISTERS__+1];
enum {
CFA_UNSET,
@@ -65,6 +68,14 @@ typedef struct
_Unwind_Sword cfa_offset;
_Unwind_Word cfa_reg;
const unsigned char *cfa_exp;
+
+ /* Architecture extensions information from CIE/FDE.
+ Note: this information has to be saved in struct frame_state_reg_info
+ instead of _Unwind_FrameState as DW_CFA_restore_state has to be able to
+ restore them. */
+#if defined(MD_ARCH_FRAME_STATE_T)
+ MD_ARCH_FRAME_STATE_T arch_fs;
+#endif
} regs;
/* The PC described by the current frame state. */
diff --git a/libgcc/unwind-generic.h b/libgcc/unwind-generic.h
index d6e4284..7b8e3fd 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind-pe.h b/libgcc/unwind-pe.h
index 13eae00..005a163 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind-seh.c b/libgcc/unwind-seh.c
index f1b8f5a..b1ea326 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind-sjlj.c b/libgcc/unwind-sjlj.c
index 178f4d0..8d7091e 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/unwind.inc b/libgcc/unwind.inc
index 40381bf..0310d12 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-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/vtv_end.c b/libgcc/vtv_end.c
index 138cfa1..354ea8e 100644
--- a/libgcc/vtv_end.c
+++ b/libgcc/vtv_end.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 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 c3d492f..2f0b33b 100644
--- a/libgcc/vtv_end_preinit.c
+++ b/libgcc/vtv_end_preinit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/libgcc/vtv_start.c b/libgcc/vtv_start.c
index 37d9f19..57813bc 100644
--- a/libgcc/vtv_start.c
+++ b/libgcc/vtv_start.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 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 aed5eca..5b1d686 100644
--- a/libgcc/vtv_start_preinit.c
+++ b/libgcc/vtv_start_preinit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GCC.