GCC Middle and Back End API Reference
|
Go to the source code of this file.
Data Structures | |
struct | fixed_value |
Macros | |
#define | FIXED_VALUE_TYPE struct fixed_value |
#define | MAX_FCONST0 |
#define | MAX_FCONST1 |
#define | FCONST0(mode) |
#define | FCONST1(mode) |
#define | CONST_FIXED_FROM_FIXED_VALUE(r, m) |
#define | FIXED_VALUES_IDENTICAL(x, y) |
#define | FIXED_VALUE_NEGATIVE(x) |
Variables | |
FIXED_VALUE_TYPE | fconst0 [MAX_FCONST0] |
FIXED_VALUE_TYPE | fconst1 [MAX_FCONST1] |
#define CONST_FIXED_FROM_FIXED_VALUE | ( | r, | |
m ) |
Return a CONST_FIXED with value R and mode M.
Referenced by const_vector_from_tree(), expand_expr_real_1(), init_emit_once(), and native_decode_rtx().
#define FCONST0 | ( | mode | ) |
Macros to access fconst0 and fconst1 via machine modes.
Referenced by build_zero_cst(), convert_to_fixed(), and init_emit_once().
#define FCONST1 | ( | mode | ) |
Referenced by build_one_cst(), convert_to_fixed(), and init_emit_once().
#define FIXED_VALUE_NEGATIVE | ( | x | ) |
Determine whether a fixed-point value X is negative.
Referenced by tree_single_nonnegative_warnv_p().
#define FIXED_VALUE_TYPE struct fixed_value |
Referenced by build_fixed(), const_binop(), fixed_from_double_int(), fold_convert_const_fixed_from_fixed(), fold_convert_const_fixed_from_int(), fold_convert_const_fixed_from_real(), fold_negate_const(), fold_relational_const(), hash_tree(), native_decode_rtx(), native_encode_fixed(), native_interpret_fixed(), print_node(), print_node_brief(), and unpack_ts_fixed_cst_value_fields().
#define FIXED_VALUES_IDENTICAL | ( | x, | |
y ) |
Referenced by compare_constant(), ipa_icf::sem_variable::equals(), operand_compare::operand_equal_p(), and simple_cst_equal().
#define MAX_FCONST0 |
#define MAX_FCONST1 |
|
extern |
In tree.cc: wrap up a FIXED_VALUE_TYPE in a tree node.
Return a new FIXED_CST node whose type is TYPE and value is F.
References FIXED_VALUE_TYPE, ggc_alloc(), make_node(), TREE_FIXED_CST_PTR, TREE_TYPE, and type().
Referenced by build_minus_one_cst(), build_one_cst(), build_zero_cst(), const_binop(), convert_to_fixed(), fold_convert_const_fixed_from_fixed(), fold_convert_const_fixed_from_int(), fold_convert_const_fixed_from_real(), fold_negate_const(), and native_interpret_fixed().
|
inline |
Return a CONST_FIXED from a bit payload and machine mode MODE. The bits in PAYLOAD are sign-extended/zero-extended according to MODE.
|
extern |
Return a CONST_FIXED rtx for a fixed-point value specified by VALUE in mode MODE.
References rtx_def::u::fv, lookup_const_fixed(), PUT_MODE(), rtx_alloc(), and rtx_def::u.
|
extern |
Binary or unary arithmetic on tree_code.
Perform the binary or unary operation described by CODE. Note that OP0 and OP1 must have the same mode for binary operators. For a unary operation, leave OP1 NULL. Return true, if !SAT_P and overflow.
References do_fixed_add(), do_fixed_divide(), do_fixed_multiply(), do_fixed_neg(), do_fixed_shift(), gcc_assert, and gcc_unreachable.
Referenced by const_binop(), and fold_negate_const().
|
extern |
Compare fixed-point values by tree_code.
Compare fixed-point values by tree_code. Note that OP0 and OP1 must have the same mode.
References gcc_assert, gcc_unreachable, and UNSIGNED_FIXED_POINT_MODE_P.
Referenced by fold_relational_const().
|
extern |
Extend or truncate to a new mode.
Extend or truncate to a new mode. If SAT_P, saturate the result to the max or the min. Return true, if !SAT_P and overflow.
References a, fixed_saturate1(), fixed_saturate2(), GET_MODE_FBIT, GET_MODE_IBIT, double_int::high, HOST_BITS_PER_DOUBLE_INT, double_int::llshift(), double_int::lshift(), double_int::sext(), SIGNED_FIXED_POINT_MODE_P, and UNSIGNED_FIXED_POINT_MODE_P.
Referenced by fold_convert_const_fixed_from_fixed().
|
extern |
Convert to a fixed-point mode from an integer.
Convert to a new fixed-point mode from an integer. If UNSIGNED_P, this integer is unsigned. If SAT_P, saturate the result to the max or the min. Return true, if !SAT_P and overflow.
References a, fixed_saturate2(), GET_MODE_FBIT, GET_MODE_IBIT, double_int::high, HOST_BITS_PER_DOUBLE_INT, double_int::llshift(), double_int::low, double_int::sext(), SIGNED_FIXED_POINT_MODE_P, and UNSIGNED_FIXED_POINT_MODE_P.
Referenced by fold_convert_const_fixed_from_int().
|
extern |
Convert to a fixed-point mode from a real.
Convert to a new fixed-point mode from a real. If SAT_P, saturate the result to the max or the min. Return true, if !SAT_P and overflow.
References a, check_real_for_fixed_mode(), generic_wide_int< storage >::elt(), FIXED_GT_MAX_EPS, FIXED_MAX_EPS, FIXED_UNDERFLOW, GET_MODE_FBIT, GET_MODE_IBIT, GET_MODE_PRECISION(), HOST_BITS_PER_DOUBLE_INT, real_2expN(), real_arithmetic(), real_to_integer(), REAL_VALUE_TYPE, generic_wide_int< storage >::ulow(), and UNSIGNED_FIXED_POINT_MODE_P.
Referenced by fold_convert_const_fixed_from_real().
|
extern |
Construct a FIXED_VALUE from a bit payload and machine mode MODE. The bits in PAYLOAD are sign-extended/zero-extended according to MODE.
Construct a CONST_FIXED from a bit payload and machine mode MODE. The bits in PAYLOAD are sign-extended/zero-extended according to MODE.
References FIXED_VALUE_TYPE, gcc_assert, gcc_unreachable, GET_MODE_BITSIZE(), GET_MODE_FBIT, GET_MODE_IBIT, HOST_BITS_PER_DOUBLE_INT, double_int::sext(), SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P, and double_int::zext().
Referenced by build_minus_one_cst(), and native_interpret_fixed().
|
extern |
Initialize from a decimal or hexadecimal string.
References ALL_ACCUM_MODE_P, ALL_FRACT_MODE_P, check_real_for_fixed_mode(), generic_wide_int< storage >::elt(), FIXED_GT_MAX_EPS, FIXED_MAX_EPS, FIXED_UNDERFLOW, GET_MODE_FBIT, GET_MODE_IBIT, GET_MODE_PRECISION(), fixed_value::mode, real_2expN(), real_arithmetic(), real_from_string(), real_to_integer(), REAL_VALUE_TYPE, SIGNED_FIXED_POINT_MODE_P, generic_wide_int< storage >::ulow(), UNSIGNED_FIXED_POINT_MODE_P, and warning().
|
extern |
Calculate a hash value.
Referenced by const_hash_1(), const_rtx_hash_1(), cselib_hash_rtx(), const_fixed_hasher::hash(), operand_compare::hash_operand(), and hash_rtx().
|
extern |
Compare two fixed-point objects for bitwise identity.
Fixed-point arithmetic support. Copyright (C) 2006-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. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
Compare two fixed objects for bitwise identity.
Referenced by const_fixed_hasher::equal().
|
extern |
Determine whether a fixed-point value X is negative.
Determine whether a fixed-point value F is negative.
References get_fixed_sign_bit(), GET_MODE_FBIT, GET_MODE_IBIT, and SIGNED_FIXED_POINT_MODE_P.
|
extern |
Render F as a decimal floating point constant.
References wide_int_storage::from(), GET_MODE_FBIT, GET_MODE_PRECISION(), real_2expN(), real_arithmetic(), real_from_integer(), real_to_decimal(), REAL_VALUE_TYPE, SIGNED, UNSIGNED, and UNSIGNED_FIXED_POINT_MODE_P.
Referenced by dump_fixed(), dump_generic_node(), print_node(), print_node_brief(), and print_value().
|
extern |
Convert to a real mode from a fixed-point.
Convert to a new real mode from a fixed-point.
References wide_int_storage::from(), GET_MODE_FBIT, GET_MODE_PRECISION(), r, real_2expN(), real_arithmetic(), real_convert(), real_from_integer(), REAL_VALUE_TYPE, SIGNED, UNSIGNED, and UNSIGNED_FIXED_POINT_MODE_P.
Referenced by fold_convert_const_real_from_fixed().
|
extern |
Constant fixed-point values 0 and 1.
Record fixed-point constant 0 and 1.
|
extern |