Skip to content
Snippets Groups Projects
  1. Jul 24, 2023
  2. Jul 23, 2023
    • Andrew Pinski's avatar
      Fix PR 110066: crash with -pg -static on riscv · bbc1a102
      Andrew Pinski authored
      The problem -fasynchronous-unwind-tables is on by default for riscv linux
      We need turn it off for crt*.o because it would make __EH_FRAME_BEGIN__ point
      to .eh_frame data from crtbeginT.o instead of the user-defined object
      during static linking.
      
      This turns it off.
      
      OK?
      
      libgcc/ChangeLog:
      
      	* config.host (riscv*-*-linux*): Add t-crtstuff to tmake_file.
      	(riscv*-*-freebsd*): Likewise.
      	* config/riscv/t-crtstuff: New file.
      bbc1a102
  3. Jul 20, 2023
  4. Jul 19, 2023
    • liuhongt's avatar
      Support type _Float16/__bf16 independent of SSE2. · 9a19fa8b
      liuhongt authored
      Enable _Float16 and __bf16 all the time but issue errors when the
      types are used in conversion, unary operation, binary operation,
      parameter passing or value return when TARGET_SSE2 is not available.
      
      Also undef macros which are used by libgcc/libstdc++ to check the
      backend support of the _Float16/__bf16 types when TARGET_SSE2 is not
      available.
      
      gcc/ChangeLog:
      
      	PR target/109504
      	* config/i386/i386-builtins.cc
      	(ix86_register_float16_builtin_type): Remove TARGET_SSE2.
      	(ix86_register_bf16_builtin_type): Ditto.
      	* config/i386/i386-c.cc (ix86_target_macros): When TARGET_SSE2
      	isn't available, undef the macros which are used to check the
      	backend support of the _Float16/__bf16 types when building
      	libstdc++ and libgcc.
      	* config/i386/i386.cc (construct_container): Issue errors for
      	HFmode/BFmode when TARGET_SSE2 is not available.
      	(function_value_32): Ditto.
      	(ix86_scalar_mode_supported_p): Remove TARGET_SSE2 for HFmode/BFmode.
      	(ix86_libgcc_floating_mode_supported_p): Ditto.
      	(ix86_emit_support_tinfos): Adjust codes.
      	(ix86_invalid_conversion): Return diagnostic message string
      	when there's conversion from/to BF/HFmode w/o TARGET_SSE2.
      	(ix86_invalid_unary_op): New function.
      	(ix86_invalid_binary_op): Ditto.
      	(TARGET_INVALID_UNARY_OP): Define.
      	(TARGET_INVALID_BINARY_OP): Define.
      	* config/i386/immintrin.h [__SSE2__]: Remove for fp16/bf16
      	related instrinsics header files.
      	* config/i386/i386.h (VALID_SSE2_TYPE_MODE): New macro.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/i386/pr109504.c: New test.
      	* gcc.target/i386/sse2-bfloat16-1.c: Adjust error info.
      	* gcc.target/i386/sse2-float16-1.c: Ditto.
      	* gcc.target/i386/sse2-float16-4.c: New test.
      	* gcc.target/i386/sse2-float16-5.c: New test.
      	* g++.target/i386/float16-1.C: Adjust error info.
      
      libgcc/ChangeLog:
      
      	* config/i386/t-softfp: Add -msse2 to libbid HFtype related
      	files.
      9a19fa8b
  5. Jul 12, 2023
  6. Jul 11, 2023
  7. Jul 07, 2023
  8. Jul 06, 2023
    • Kito Cheng's avatar
      RISC-V: Handle rouding mode correctly on zfinx · 0d40aeb9
      Kito Cheng authored
      Zfinx has provide fcsr like F, so rouding mode should use fcsr instead
      of `soft` fenv.
      
      libgcc/ChangeLog:
      
      	* config/riscv/sfp-machine.h (FP_INIT_ROUNDMODE): Check zfinx.
      	(FP_HANDLE_EXCEPTIONS): Ditto.
      0d40aeb9
  9. Jun 20, 2023
  10. Jun 19, 2023
    • Andrew Stubbs's avatar
      amdgcn: implement vector div and mod libfuncs · d9d67745
      Andrew Stubbs authored
      Also divmod, but only for scalar modes, for now (because there are no complex
      int vectors yet).
      
      gcc/ChangeLog:
      
      	* config/gcn/gcn.cc (gcn_expand_divmod_libfunc): New function.
      	(gcn_init_libfuncs): Add div and mod functions for all modes.
      	Add placeholders for divmod functions.
      	(TARGET_EXPAND_DIVMOD_LIBFUNC): Define.
      
      libgcc/ChangeLog:
      
      	* config/gcn/lib2-divmod-di.c: Reimplement like lib2-divmod.c.
      	* config/gcn/lib2-divmod.c: Likewise.
      	* config/gcn/lib2-gcn.h: Add new types and prototypes for all the
      	new vector libfuncs.
      	* config/gcn/t-amdgcn: Add new files.
      	* config/gcn/amdgcn_veclib.h: New file.
      	* config/gcn/lib2-vec_divmod-di.c: New file.
      	* config/gcn/lib2-vec_divmod-hi.c: New file.
      	* config/gcn/lib2-vec_divmod-qi.c: New file.
      	* config/gcn/lib2-vec_divmod.c: New file.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/tree-ssa/predcom-2.c: Avoid vectors on amdgcn.
      	* gcc.dg/unroll-8.c: Likewise.
      	* gcc.dg/vect/slp-26.c: Change expected results on amdgdn.
      	* lib/target-supports.exp
      	(check_effective_target_vect_int_mod): Add amdgcn.
      	(check_effective_target_divmod): Likewise.
      	* gcc.target/gcn/simd-math-3-16.c: New test.
      	* gcc.target/gcn/simd-math-3-2.c: New test.
      	* gcc.target/gcn/simd-math-3-32.c: New test.
      	* gcc.target/gcn/simd-math-3-4.c: New test.
      	* gcc.target/gcn/simd-math-3-8.c: New test.
      	* gcc.target/gcn/simd-math-3-char-16.c: New test.
      	* gcc.target/gcn/simd-math-3-char-2.c: New test.
      	* gcc.target/gcn/simd-math-3-char-32.c: New test.
      	* gcc.target/gcn/simd-math-3-char-4.c: New test.
      	* gcc.target/gcn/simd-math-3-char-8.c: New test.
      	* gcc.target/gcn/simd-math-3-char-run-16.c: New test.
      	* gcc.target/gcn/simd-math-3-char-run-2.c: New test.
      	* gcc.target/gcn/simd-math-3-char-run-32.c: New test.
      	* gcc.target/gcn/simd-math-3-char-run-4.c: New test.
      	* gcc.target/gcn/simd-math-3-char-run-8.c: New test.
      	* gcc.target/gcn/simd-math-3-char-run.c: New test.
      	* gcc.target/gcn/simd-math-3-char.c: New test.
      	* gcc.target/gcn/simd-math-3-long-16.c: New test.
      	* gcc.target/gcn/simd-math-3-long-2.c: New test.
      	* gcc.target/gcn/simd-math-3-long-32.c: New test.
      	* gcc.target/gcn/simd-math-3-long-4.c: New test.
      	* gcc.target/gcn/simd-math-3-long-8.c: New test.
      	* gcc.target/gcn/simd-math-3-long-run-16.c: New test.
      	* gcc.target/gcn/simd-math-3-long-run-2.c: New test.
      	* gcc.target/gcn/simd-math-3-long-run-32.c: New test.
      	* gcc.target/gcn/simd-math-3-long-run-4.c: New test.
      	* gcc.target/gcn/simd-math-3-long-run-8.c: New test.
      	* gcc.target/gcn/simd-math-3-long-run.c: New test.
      	* gcc.target/gcn/simd-math-3-long.c: New test.
      	* gcc.target/gcn/simd-math-3-run-16.c: New test.
      	* gcc.target/gcn/simd-math-3-run-2.c: New test.
      	* gcc.target/gcn/simd-math-3-run-32.c: New test.
      	* gcc.target/gcn/simd-math-3-run-4.c: New test.
      	* gcc.target/gcn/simd-math-3-run-8.c: New test.
      	* gcc.target/gcn/simd-math-3-run.c: New test.
      	* gcc.target/gcn/simd-math-3-short-16.c: New test.
      	* gcc.target/gcn/simd-math-3-short-2.c: New test.
      	* gcc.target/gcn/simd-math-3-short-32.c: New test.
      	* gcc.target/gcn/simd-math-3-short-4.c: New test.
      	* gcc.target/gcn/simd-math-3-short-8.c: New test.
      	* gcc.target/gcn/simd-math-3-short-run-16.c: New test.
      	* gcc.target/gcn/simd-math-3-short-run-2.c: New test.
      	* gcc.target/gcn/simd-math-3-short-run-32.c: New test.
      	* gcc.target/gcn/simd-math-3-short-run-4.c: New test.
      	* gcc.target/gcn/simd-math-3-short-run-8.c: New test.
      	* gcc.target/gcn/simd-math-3-short-run.c: New test.
      	* gcc.target/gcn/simd-math-3-short.c: New test.
      	* gcc.target/gcn/simd-math-3.c: New test.
      	* gcc.target/gcn/simd-math-4-char-run.c: New test.
      	* gcc.target/gcn/simd-math-4-char.c: New test.
      	* gcc.target/gcn/simd-math-4-long-run.c: New test.
      	* gcc.target/gcn/simd-math-4-long.c: New test.
      	* gcc.target/gcn/simd-math-4-run.c: New test.
      	* gcc.target/gcn/simd-math-4-short-run.c: New test.
      	* gcc.target/gcn/simd-math-4-short.c: New test.
      	* gcc.target/gcn/simd-math-4.c: New test.
      	* gcc.target/gcn/simd-math-5-16.c: New test.
      	* gcc.target/gcn/simd-math-5-32.c: New test.
      	* gcc.target/gcn/simd-math-5-4.c: New test.
      	* gcc.target/gcn/simd-math-5-8.c: New test.
      	* gcc.target/gcn/simd-math-5-char-16.c: New test.
      	* gcc.target/gcn/simd-math-5-char-32.c: New test.
      	* gcc.target/gcn/simd-math-5-char-4.c: New test.
      	* gcc.target/gcn/simd-math-5-char-8.c: New test.
      	* gcc.target/gcn/simd-math-5-char-run-16.c: New test.
      	* gcc.target/gcn/simd-math-5-char-run-32.c: New test.
      	* gcc.target/gcn/simd-math-5-char-run-4.c: New test.
      	* gcc.target/gcn/simd-math-5-char-run-8.c: New test.
      	* gcc.target/gcn/simd-math-5-char-run.c: New test.
      	* gcc.target/gcn/simd-math-5-char.c: New test.
      	* gcc.target/gcn/simd-math-5-long-16.c: New test.
      	* gcc.target/gcn/simd-math-5-long-32.c: New test.
      	* gcc.target/gcn/simd-math-5-long-4.c: New test.
      	* gcc.target/gcn/simd-math-5-long-8.c: New test.
      	* gcc.target/gcn/simd-math-5-long-run-16.c: New test.
      	* gcc.target/gcn/simd-math-5-long-run-32.c: New test.
      	* gcc.target/gcn/simd-math-5-long-run-4.c: New test.
      	* gcc.target/gcn/simd-math-5-long-run-8.c: New test.
      	* gcc.target/gcn/simd-math-5-long-run.c: New test.
      	* gcc.target/gcn/simd-math-5-long.c: New test.
      	* gcc.target/gcn/simd-math-5-run-16.c: New test.
      	* gcc.target/gcn/simd-math-5-run-32.c: New test.
      	* gcc.target/gcn/simd-math-5-run-4.c: New test.
      	* gcc.target/gcn/simd-math-5-run-8.c: New test.
      	* gcc.target/gcn/simd-math-5-run.c: New test.
      	* gcc.target/gcn/simd-math-5-short-16.c: New test.
      	* gcc.target/gcn/simd-math-5-short-32.c: New test.
      	* gcc.target/gcn/simd-math-5-short-4.c: New test.
      	* gcc.target/gcn/simd-math-5-short-8.c: New test.
      	* gcc.target/gcn/simd-math-5-short-run-16.c: New test.
      	* gcc.target/gcn/simd-math-5-short-run-32.c: New test.
      	* gcc.target/gcn/simd-math-5-short-run-4.c: New test.
      	* gcc.target/gcn/simd-math-5-short-run-8.c: New test.
      	* gcc.target/gcn/simd-math-5-short-run.c: New test.
      	* gcc.target/gcn/simd-math-5-short.c: New test.
      	* gcc.target/gcn/simd-math-5.c: New test.
      d9d67745
    • Andrew Stubbs's avatar
      amdgcn: Delete inactive libfuncs · 1ff8ba48
      Andrew Stubbs authored
      The HImode libfuncs weren't called and trying to enable them fails because
      TARGET_PROMOTE_FUNCTION_MODE wants to widen the arguments but the signedness
      isn't known.
      
      libgcc/ChangeLog:
      
      	* config/gcn/lib2-gcn.h (QItype, UQItype, HItype, UHItype): Delete.
      	(__divhi3, __modhi3, __udivhi3, __umodhi3): Delete.
      	* config/gcn/t-amdgcn: Don't build lib2-divmod-hi.c.
      	* config/gcn/lib2-divmod-hi.c: Removed.
      1ff8ba48
  11. Jun 08, 2023
  12. Jun 07, 2023
    • Florian Weimer's avatar
      libgcc: Fix eh_frame fast path in find_fde_tail · 49310a99
      Florian Weimer authored
      The eh_frame value is only used by linear_search_fdes, not the binary
      search directly in find_fde_tail, so the bug is not immediately
      apparent with most programs.
      
      Fixes commit e724b048 ("libgcc:
      Special-case BFD ld unwind table encodings in find_fde_tail").
      
      libgcc/
      
      	PR libgcc/109712
      	* unwind-dw2-fde-dip.c (find_fde_tail): Correct fast path for
      	parsing eh_frame.
      49310a99
  13. Jun 06, 2023
  14. Jun 05, 2023
    • Kewen Lin's avatar
      libgcc: Use initarray section type for .init_stack · 83c3550e
      Kewen Lin authored
      One of my workmates found there is a warning like:
      
        libgcc/config/rs6000/morestack.S:402: Warning: ignoring
          incorrect section type for .init_array.00000
      
      when compiling libgcc/config/rs6000/morestack.S.
      
      Since commit r13-6545 touched that file recently, which was
      suspected to be responsible for this warning, I did some
      investigation and found this is a warning staying for a long
      time.  For section .init_stack*, it's preferred to use
      section type SHT_INIT_ARRAY.  So this patch is use
      "@init_array" to replace "@progbits".
      
      Although the warning is trivial, Segher suggested me to
      post this to fix it, in order to avoid any possible
      misunderstanding/confusion on the warning.
      
      As Alan confirmed, this doesn't require a premise check
      on if the existing binutils supports "@init_array" or not,
      "because if you want split-stack to work, you must link
      with gold, any version of binutils that has gold has an
      assembler that understands @init_array". (Thanks Alan!)
      
      libgcc/ChangeLog:
      
      	* config/i386/morestack.S: Use @init_array rather than
      	@progbits for section type of section .init_array.
      	* config/rs6000/morestack.S: Likewise.
      	* config/s390/morestack.S: Likewise.
      83c3550e
    • YunQiang Su's avatar
      MIPS: Add speculation_barrier support · 29b74545
      YunQiang Su authored
      speculation_barrier for MIPS needs sync+jr.hb (r2+),
      so we implement __speculation_barrier in libgcc, like arm32 does.
      
      gcc/ChangeLog:
      	* config/mips/mips-protos.h (mips_emit_speculation_barrier): New
      	prototype.
      	* config/mips/mips.cc (speculation_barrier_libfunc): New static
      	variable.
      	(mips_init_libfuncs): Initialize it.
      	(mips_emit_speculation_barrier): New function.
      	* config/mips/mips.md (speculation_barrier): Call
      	mips_emit_speculation_barrier.
      
      libgcc/ChangeLog:
      	* config/mips/lib1funcs.S: New file.
      	define __speculation_barrier and include mips16.S.
      	* config/mips/t-mips: define LIB1ASMSRC as mips/lib1funcs.S.
      	define LIB1ASMFUNCS as _speculation_barrier.
      	set version info for __speculation_barrier.
      	* config/mips/libgcc-mips.ver: New file.
      	* config/mips/t-mips16: don't define LIB1ASMSRC as mips16.S
      	included in lib1funcs.S now.
      29b74545
  15. Jun 04, 2023
  16. Jun 03, 2023
    • Thomas Neumann's avatar
      fix radix sort on 32bit platforms [PR109670] · 38e88d41
      Thomas Neumann authored
      The radix sort uses two buffers, a1 for input and a2 for output.
      After every digit the role of the two buffers is swapped.
      When terminating the sort early the code made sure the output
      was in a2.  However, when we run out of bits, as can happen on
      32bit platforms, the sorted result was in a1, as we had just
      swapped a1 and a2.
      This patch fixes the problem by unconditionally having a1 as
      output after every loop iteration.
      
      This bug manifested itself only on 32bit platforms and even then
      only in some circumstances, as it needs frames where a swap
      is required due to differences in the top-most byte, which is
      affected by ASLR. The new logic was validated by exhaustive
      search over 32bit input values.
      
      libgcc/ChangeLog:
      	PR libgcc/109670
      	* unwind-dw2-fde.c: Fix radix sort buffer management.
      38e88d41
    • Thomas Neumann's avatar
      release the sorted FDE array when deregistering a frame [PR109685] · 5cf60b6b
      Thomas Neumann authored
      The atomic fastpath bypasses the code that releases the sort
      array which was lazily allocated during unwinding. We now
      check after deregistering if there is an array to free.
      
      libgcc/ChangeLog:
      	PR libgcc/109685
      	* unwind-dw2-fde.c: Free sort array in atomic fast path.
      5cf60b6b
  17. May 20, 2023
  18. May 19, 2023
    • Iain Sandoe's avatar
      Darwin, libgcc : Adjust min version supported for the OS. · 20b8779e
      Iain Sandoe authored
      
      Tools from later versions of the OS deprecate or fail to support
      earlier OS revisions.
      
      Signed-off-by: default avatarIain Sandoe <iain@sandoe.co.uk>
      
      libgcc/ChangeLog:
      
      	* config.host: Arrange to set min Darwin OS versions from
      	the configured host version.
      	* config/darwin10-unwind-find-enc-func.c: Do not use current
      	headers, but declare the nexessary structures locally to the
      	versions in use for Mac OSX 10.6.
      	* config/t-darwin: Amend to handle configured min OS
      	versions.
      	* config/t-darwin-min-1: New.
      	* config/t-darwin-min-5: New.
      	* config/t-darwin-min-8: New.
      20b8779e
  19. May 16, 2023
  20. May 15, 2023
    • Thomas Neumann's avatar
      fix assert in non-atomic path · 30adfb85
      Thomas Neumann authored
      The non-atomic path does not have range information,
      we have to adjust the assert handle that case, too.
      
      libgcc/ChangeLog:
      	* unwind-dw2-fde.c: Fix assert in non-atomic path.
      30adfb85
    • Sören Tempel's avatar
      fix assert in __deregister_frame_info_bases · 9be9be82
      Sören Tempel authored
      
      The assertion in __deregister_frame_info_bases assumes that for every
      frame something was inserted into the lookup data structure by
      __register_frame_info_bases. Unfortunately, this does not necessarily
      hold true as the btree_insert call in __register_frame_info_bases will
      not insert anything for empty ranges. Therefore, we need to explicitly
      account for such empty ranges in the assertion as `ob` will be a null
      pointer for such ranges, hence causing the assertion to fail.
      
      Signed-off-by: default avatarSören Tempel <soeren@soeren-tempel.net>
      
      libgcc/ChangeLog:
      	* unwind-dw2-fde.c: Accept empty ranges when deregistering frames.
      9be9be82
  21. May 03, 2023
  22. May 02, 2023
  23. May 01, 2023
    • Dimitar Dimitrov's avatar
      libgcc pru: Define TARGET_HAS_NO_HW_DIVIDE · 1ee457a5
      Dimitar Dimitrov authored
      
      This patch aligns the configuration to the actual PRU capabilities. It
      also reduces the size of the affected libgcc functions.
      
      For a real-world project using integer arithmetics the savings
      are significant:
      
        Before:
           text    data     bss     dec     hex filename
           3688     865     544    5097    13e9 hc-sr04-range-sensor.elf
      
        With TARGET_HAS_NO_HW_DIVIDE defined:
           text    data     bss     dec     hex filename
           2824     865     544    4233    1089 hc-sr04-range-sensor.elf
      
      Execution speed also appears to have improved. The moddi3 function is
      now executed in half the CPU cycles.
      
      libgcc/ChangeLog:
      
      	* config/pru/t-pru (HOST_LIBGCC2_CFLAGS): Add
      	-DTARGET_HAS_NO_HW_DIVIDE.
      
      Signed-off-by: default avatarDimitar Dimitrov <dimitar@dinux.eu>
      1ee457a5
  24. Apr 27, 2023
    • GCC Administrator's avatar
      Daily bump. · 4a3dbcbd
      GCC Administrator authored
      4a3dbcbd
    • Hans-Peter Nilsson's avatar
      libgcc CRIS: Define TARGET_HAS_NO_HW_DIVIDE · d7f0bc05
      Hans-Peter Nilsson authored
      With this, execution time for e.g. __moddi3 go from 59 to 40 cycles in
      the "fast" case or from 290 to 200 cycles in the "slow" case (when the
      !TARGET_HAS_NO_HW_DIVIDE variant calls division and modulus functions
      for 32-bit SImode), as exposed by gcc.c-torture/execute/arith-rand-ll.c
      compiled for -march=v10.
      
      Unfortunately, it just puts a performance improvement "dent" of 0.07%
      in a arith-rand-ll.c-based performance test - where all loops are also
      reduced to 1/10.
      
      The size of every affected libgcc function is reduced to less than
      half and they are all now leaf functions.
      
      	* config/cris/t-cris (HOST_LIBGCC2_CFLAGS): Add
      	-DTARGET_HAS_NO_HW_DIVIDE.
      d7f0bc05
  25. Apr 26, 2023
    • Patrick O'Neill's avatar
      RISCV: Inline subword atomic ops · f797260a
      Patrick O'Neill authored
      
      RISC-V has no support for subword atomic operations; code currently
      generates libatomic library calls.
      
      This patch changes the default behavior to inline subword atomic calls
      (using the same logic as the existing library call).
      Behavior can be specified using the -minline-atomics and
      -mno-inline-atomics command line flags.
      
      gcc/libgcc/config/riscv/atomic.c has the same logic implemented in asm.
      This will need to stay for backwards compatibility and the
      -mno-inline-atomics flag.
      
      2023-04-18 Patrick O'Neill <patrick@rivosinc.com>
      
      gcc/ChangeLog:
      	PR target/104338
      	* config/riscv/riscv-protos.h: Add helper function stubs.
      	* config/riscv/riscv.cc: Add helper functions for subword masking.
      	* config/riscv/riscv.opt: Add command-line flag.
      	* config/riscv/sync.md: Add masking logic and inline asm for fetch_and_op,
      	fetch_and_nand, CAS, and exchange ops.
      	* doc/invoke.texi: Add blurb regarding command-line flag.
      
      libgcc/ChangeLog:
      	PR target/104338
      	* config/riscv/atomic.c: Add reference to duplicate logic.
      
      gcc/testsuite/ChangeLog:
      	PR target/104338
      	* gcc.target/riscv/inline-atomics-1.c: New test.
      	* gcc.target/riscv/inline-atomics-2.c: New test.
      	* gcc.target/riscv/inline-atomics-3.c: New test.
      	* gcc.target/riscv/inline-atomics-4.c: New test.
      	* gcc.target/riscv/inline-atomics-5.c: New test.
      	* gcc.target/riscv/inline-atomics-6.c: New test.
      	* gcc.target/riscv/inline-atomics-7.c: New test.
      	* gcc.target/riscv/inline-atomics-8.c: New test.
      
      Signed-off-by: default avatarPatrick O'Neill <patrick@rivosinc.com>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      f797260a
  26. Apr 09, 2023
  27. Apr 08, 2023
  28. Apr 06, 2023
  29. Apr 05, 2023
    • John David Anglin's avatar
      Add assember CFI directives to millicode division and remainder routines. · ddb0f66e
      John David Anglin authored
      The millicode division and remainder routines trap division by zero.
      The unwinder needs these directives to unwind divide by zero traps.
      
      2023-04-05  John David Anglin  <danglin@gcc.gnu.org>
      
      libgcc/ChangeLog:
      
      	PR target/109374
      	* config/pa/milli64.S (RETURN_COLUMN): Define.
      	($$divI): Add CFI directives.
      	($$divU): Likewise.
      	($$remI): Likewise.
      	($$remU): Likewise.
      ddb0f66e
  30. Mar 20, 2023
  31. Mar 19, 2023
    • Stafford Horne's avatar
      or1k: Do not clear existing FPU exceptions before updating · 33fb1625
      Stafford Horne authored
      We should always carry the exceptions forward.  This bug was found when
      working on testing glibc math tests, many tests were failing with
      Overflow and Underflow flags not set.  This was traced to here.
      
      libgcc/ChangeLog:
      
      	* config/or1k/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Remove
      	statement clearing existing exceptions.
      33fb1625
  32. Mar 14, 2023
  33. Mar 13, 2023
Loading