From be336e025f92b7ce30143380f8d1d50a7f02d282 Mon Sep 17 00:00:00 2001 From: Maximilian Downey Twiss <creatorsmithmdt@gmail.com> Date: Fri, 18 Nov 2022 14:32:58 +1100 Subject: [PATCH 29/56] java: Properly handle GET_MODE_SIZE as a poly_uint16.
gcc/java/ChangeLog: * builtins.cc (compareAndSwapLong_builtin): Treat GET_MODE_SIZE as polynomial. * expr.cc (expand_java_return): Likewise. --- gcc/java/builtins.cc | 2 +- gcc/java/expr.cc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/java/builtins.cc b/gcc/java/builtins.cc index f27831d51c2..09f6c159aa5 100644 --- a/gcc/java/builtins.cc +++ b/gcc/java/builtins.cc @@ -348,7 +348,7 @@ compareAndSwapLong_builtin (tree method_return_type ATTRIBUTE_UNUSED, versions. */ if (can_compare_and_swap_p (mode, (flag_use_atomic_builtins - && GET_MODE_SIZE (mode) <= UNITS_PER_WORD))) + && known_le (GET_MODE_SIZE (mode), UNITS_PER_WORD)))) { tree addr, stmt; enum built_in_function fncode = BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_8; diff --git a/gcc/java/expr.cc b/gcc/java/expr.cc index 8d897550a59..80bff58d727 100644 --- a/gcc/java/expr.cc +++ b/gcc/java/expr.cc @@ -1299,8 +1299,8 @@ expand_java_return (tree type) The whole if expression just goes away if INT_TYPE_SIZE < 32 is false. */ if (INT_TYPE_SIZE < 32 - && (GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (res))) - < GET_MODE_SIZE (TYPE_MODE (type)))) + && known_lt (GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (res))), + GET_MODE_SIZE (TYPE_MODE (type)))) retval = build1 (NOP_EXPR, TREE_TYPE (res), retval); TREE_SIDE_EFFECTS (retval) = 1; -- 2.38.1