mirror of git://gcc.gnu.org/git/gcc.git
Compare commits
2 Commits
16967ce96a
...
753f68d5dc
Author | SHA1 | Date |
---|---|---|
![]() |
753f68d5dc | |
![]() |
96da9d464a |
|
@ -1,3 +1,16 @@
|
||||||
|
==================== Branch work222-float, patch #341 ====================
|
||||||
|
|
||||||
|
Do not issue psabi warning for 16-bit floating point library calls.
|
||||||
|
|
||||||
|
2025-10-17 Michael Meissner <meissner@linux.ibm.com>
|
||||||
|
|
||||||
|
gcc/
|
||||||
|
|
||||||
|
* config/rs6000/rs6000-call.c (init_cumulative_args): Do not issue the
|
||||||
|
psabi warning for passing and returning 16-bit floating point calls on
|
||||||
|
library functions.
|
||||||
|
(rs6000_function_arg): Likewise.
|
||||||
|
|
||||||
==================== Branch work222-float, patch #340 ====================
|
==================== Branch work222-float, patch #340 ====================
|
||||||
|
|
||||||
Fix loading up negative 0 vector 16-bit floating point.
|
Fix loading up negative 0 vector 16-bit floating point.
|
||||||
|
|
|
@ -64,6 +64,7 @@
|
||||||
#include "ppc-auxv.h"
|
#include "ppc-auxv.h"
|
||||||
#include "targhooks.h"
|
#include "targhooks.h"
|
||||||
#include "opts.h"
|
#include "opts.h"
|
||||||
|
#include "print-tree.h"
|
||||||
|
|
||||||
#include "rs6000-internal.h"
|
#include "rs6000-internal.h"
|
||||||
|
|
||||||
|
@ -691,7 +692,7 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype,
|
||||||
future. The issue is currently 16-bit floating point is returned in
|
future. The issue is currently 16-bit floating point is returned in
|
||||||
floating point register #1 in 16-bit format. We may or may not want to
|
floating point register #1 in 16-bit format. We may or may not want to
|
||||||
return it as a scalar 64-bit value. */
|
return it as a scalar 64-bit value. */
|
||||||
if (fntype && warn_psabi)
|
if (fntype && warn_psabi && !cum->libcall)
|
||||||
{
|
{
|
||||||
machine_mode ret_mode = TYPE_MODE (TREE_TYPE (fntype));
|
machine_mode ret_mode = TYPE_MODE (TREE_TYPE (fntype));
|
||||||
if (ret_mode == BFmode || ret_mode == HFmode)
|
if (ret_mode == BFmode || ret_mode == HFmode)
|
||||||
|
@ -1659,9 +1660,9 @@ rs6000_function_arg (cumulative_args_t cum_v, const function_arg_info &arg)
|
||||||
future. The issue is currently 16-bit floating point values are passed in
|
future. The issue is currently 16-bit floating point values are passed in
|
||||||
floating point registers in the native 16-bit format. We may or may not
|
floating point registers in the native 16-bit format. We may or may not
|
||||||
want to pass the value it as a scalar 64-bit value. */
|
want to pass the value it as a scalar 64-bit value. */
|
||||||
if (warn_psabi && (mode == BFmode || mode == HFmode))
|
if (warn_psabi && !cum->libcall && (mode == BFmode || mode == HFmode))
|
||||||
warning (OPT_Wpsabi, "%s might be passed differently in the future",
|
warning (OPT_Wpsabi, "%s might be passed differently in the future",
|
||||||
mode == BFmode ? "__bfloat16" : "_Float16");
|
mode == BFmode ? "__bfloat16" : "_Float16");
|
||||||
|
|
||||||
/* Return a marker to indicate whether CR1 needs to set or clear the
|
/* Return a marker to indicate whether CR1 needs to set or clear the
|
||||||
bit that V.4 uses to say fp args were passed in registers.
|
bit that V.4 uses to say fp args were passed in registers.
|
||||||
|
|
Loading…
Reference in New Issue