My first impression is that it should be the same as Pmode, but I admit it has more clear semantics, and would be useful when we have ilp32 on rv64.
So LGTM On Fri, Apr 28, 2023 at 2:16 PM Christoph Muellner <christoph.muell...@vrull.eu> wrote: > > From: Christoph Müllner <christoph.muell...@vrull.eu> > > Define a Xmode macro that specifies the registers size (XLEN) > similar to Pmode. This allows the backend code to write generic > RV32/RV64 C code (under certain circumstances). > > gcc/ChangeLog: > > * config/riscv/riscv.h (Xmode): New macro. > > Signed-off-by: Christoph Müllner <christoph.muell...@vrull.eu> > --- > gcc/config/riscv/riscv.h | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h > index 66fb07d6652..90746fe14e3 100644 > --- a/gcc/config/riscv/riscv.h > +++ b/gcc/config/riscv/riscv.h > @@ -791,6 +791,10 @@ typedef struct { > > #define Pmode word_mode > > +/* Specify the machine mode that registers have. */ > + > +#define Xmode (TARGET_64BIT ? DImode : SImode) > + > /* Give call MEMs SImode since it is the "most permissive" mode > for both 32-bit and 64-bit targets. */ > > -- > 2.40.1 >