> From: Anton Johansson <[email protected]> > Sent: Monday, October 18, 2021 6:23 AM > To: Taylor Simpson <[email protected]>; Alessandro Di Federico > <[email protected]>; [email protected] > Cc: Brian Cain <[email protected]>; [email protected]; [email protected]; > [email protected]; Alessandro Di Federico <[email protected]> > Subject: Re: [PATCH v6 07/12] target/hexagon: prepare input for the > idef-parser > > On 9/7/21 18:09, Taylor Simpson wrote: > +#define fADDSAT64(DST, A, B) \ > + __a = fCAST8u(A); \ > + __b = fCAST8u(B); \ > + __sum = __a + __b; \ > + __xor = __a ^ __b; \ > + __mask = fCAST8s(0x8000000000000000ULL); \ > + if (((__a ^ __b) | ~(__a ^ __sum)) & __mask) { \ > + DST = __sum; \ > + } else { \ > + DST = ((__sum & __mask) >> 63) + __mask; \ > + fSET_OVERFLOW(); \ > + } > There are a bunch of these with pretty complex semantics. Wouldn't it be > easier to recognize them in the parser and call a hand-written helper? > > These macro redefinitions are needed to work with the auto type system in > idef-parser. We can drop these specializations in the upcoming patchset where > we parse fHIDE declarations. > If we still want to resort to helpers here, it's probably better to exclude > instructions using fADDSAT64 (and similar) directly, and fallback on > helpers/overrides for those instructions.
Sorry, I wasn't clear. I meant a hand-written function to generate the TCG code - not a qemu TCG helper. Thanks, Taylor
