On Sat, Aug 26, 2023 at 10:06:22PM -0700, Richard Henderson wrote: > On 8/26/23 09:02, Bastian Koppelmann wrote: > > Signed-off-by: Bastian Koppelmann <kbast...@mail.uni-paderborn.de> > > --- > > target/tricore/translate.c | 8 ++++---- > > tests/tcg/tricore/asm/macros.h | 9 +++++++++ > > tests/tcg/tricore/asm/test_insert.S | 5 +++++ > > 3 files changed, 18 insertions(+), 4 deletions(-) > > > > diff --git a/target/tricore/translate.c b/target/tricore/translate.c > > index d13f85c03a..a68660b326 100644 > > --- a/target/tricore/translate.c > > +++ b/target/tricore/translate.c > > @@ -8225,12 +8225,12 @@ static void decode_32Bit_opc(DisasContext *ctx) > > temp2 = tcg_temp_new(); /* width*/ > > temp3 = tcg_temp_new(); /* pos */ > > - CHECK_REG_PAIR(r3); > > + CHECK_REG_PAIR(r2); > > While it looks as if the end result is the same, it appears the macros used > just above are wrong. The field definitions for RCRR on page 1-4 do not > match the field definitions for INSERT.RCRR on page 3-118.
Looks correct to me. I guess it is confusing that RCRR on page 1-4 uses s1, s2, etc., and d for the reg names, while INSERT.RCRR on page 3-118 enumerates the reg names from a to d. So the "d" for dst from page 1-4 is not the same "d" on page 3-118. Cheers, Bastian