OK :)

On Fri, Apr 28, 2023 at 2:15 PM Christoph Muellner
<christoph.muell...@vrull.eu> wrote:
>
> From: Christoph Müllner <christoph.muell...@vrull.eu>
>
> enum riscv_address_type and struct riscv_address_info are used
> to store address classification information. Let's move this types
> into our common header file in order to share them with other
> compilation units.
>
> This is a non-functional change without any intendet side-effects.
>
> gcc/ChangeLog:
>
>         * config/riscv/riscv-protos.h (enum riscv_address_type):
>         New location of type definition.
>         (struct riscv_address_info): Likewise.
>         * config/riscv/riscv.cc (enum riscv_address_type):
>         Old location of type definition.
>         (struct riscv_address_info): Likewise.
>
> Signed-off-by: Christoph Müllner <christoph.muell...@vrull.eu>
> ---
>  gcc/config/riscv/riscv-protos.h | 43 +++++++++++++++++++++++++++++++++
>  gcc/config/riscv/riscv.cc       | 43 ---------------------------------
>  2 files changed, 43 insertions(+), 43 deletions(-)
>
> diff --git a/gcc/config/riscv/riscv-protos.h b/gcc/config/riscv/riscv-protos.h
> index 5244e8dcbf0..628c64cf628 100644
> --- a/gcc/config/riscv/riscv-protos.h
> +++ b/gcc/config/riscv/riscv-protos.h
> @@ -35,6 +35,49 @@ enum riscv_symbol_type {
>  };
>  #define NUM_SYMBOL_TYPES (SYMBOL_TLS_GD + 1)
>
> +/* Classifies an address.
> +
> +   ADDRESS_REG
> +       A natural register + offset address.  The register satisfies
> +       riscv_valid_base_register_p and the offset is a const_arith_operand.
> +
> +   ADDRESS_LO_SUM
> +       A LO_SUM rtx.  The first operand is a valid base register and
> +       the second operand is a symbolic address.
> +
> +   ADDRESS_CONST_INT
> +       A signed 16-bit constant address.
> +
> +   ADDRESS_SYMBOLIC:
> +       A constant symbolic address.  */
> +enum riscv_address_type {
> +  ADDRESS_REG,
> +  ADDRESS_LO_SUM,
> +  ADDRESS_CONST_INT,
> +  ADDRESS_SYMBOLIC
> +};
> +
> +/* Information about an address described by riscv_address_type.
> +
> +   ADDRESS_CONST_INT
> +       No fields are used.
> +
> +   ADDRESS_REG
> +       REG is the base register and OFFSET is the constant offset.
> +
> +   ADDRESS_LO_SUM
> +       REG and OFFSET are the operands to the LO_SUM and SYMBOL_TYPE
> +       is the type of symbol it references.
> +
> +   ADDRESS_SYMBOLIC
> +       SYMBOL_TYPE is the type of symbol that the address references.  */
> +struct riscv_address_info {
> +  enum riscv_address_type type;
> +  rtx reg;
> +  rtx offset;
> +  enum riscv_symbol_type symbol_type;
> +};
> +
>  /* Routines implemented in riscv.cc.  */
>  extern enum riscv_symbol_type riscv_classify_symbolic_expression (rtx);
>  extern bool riscv_symbolic_constant_p (rtx, enum riscv_symbol_type *);
> diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc
> index 92043236b17..8388235d8cc 100644
> --- a/gcc/config/riscv/riscv.cc
> +++ b/gcc/config/riscv/riscv.cc
> @@ -81,28 +81,6 @@ along with GCC; see the file COPYING3.  If not see
>  /* True if bit BIT is set in VALUE.  */
>  #define BITSET_P(VALUE, BIT) (((VALUE) & (1ULL << (BIT))) != 0)
>
> -/* Classifies an address.
> -
> -   ADDRESS_REG
> -       A natural register + offset address.  The register satisfies
> -       riscv_valid_base_register_p and the offset is a const_arith_operand.
> -
> -   ADDRESS_LO_SUM
> -       A LO_SUM rtx.  The first operand is a valid base register and
> -       the second operand is a symbolic address.
> -
> -   ADDRESS_CONST_INT
> -       A signed 16-bit constant address.
> -
> -   ADDRESS_SYMBOLIC:
> -       A constant symbolic address.  */
> -enum riscv_address_type {
> -  ADDRESS_REG,
> -  ADDRESS_LO_SUM,
> -  ADDRESS_CONST_INT,
> -  ADDRESS_SYMBOLIC
> -};
> -
>  /* Information about a function's frame layout.  */
>  struct GTY(())  riscv_frame_info {
>    /* The size of the frame in bytes.  */
> @@ -182,27 +160,6 @@ struct riscv_arg_info {
>    unsigned int fpr_offset;
>  };
>
> -/* Information about an address described by riscv_address_type.
> -
> -   ADDRESS_CONST_INT
> -       No fields are used.
> -
> -   ADDRESS_REG
> -       REG is the base register and OFFSET is the constant offset.
> -
> -   ADDRESS_LO_SUM
> -       REG and OFFSET are the operands to the LO_SUM and SYMBOL_TYPE
> -       is the type of symbol it references.
> -
> -   ADDRESS_SYMBOLIC
> -       SYMBOL_TYPE is the type of symbol that the address references.  */
> -struct riscv_address_info {
> -  enum riscv_address_type type;
> -  rtx reg;
> -  rtx offset;
> -  enum riscv_symbol_type symbol_type;
> -};
> -
>  /* One stage in a constant building sequence.  These sequences have
>     the form:
>
> --
> 2.40.1
>

Reply via email to