On 08/04/2021 03:40 PM, Song Gao wrote: > > On 07/23/2021 01:12 PM, Richard Henderson wrote: >>> +static bool trans_asrtle_d(DisasContext *ctx, arg_asrtle_d * a) >>> +{ >>> + TCGv t0, t1; >>> + >>> + t0 = get_gpr(a->rj); >>> + t1 = get_gpr(a->rk); >>> + >>> + gen_helper_asrtle_d(cpu_env, t0, t1); >>> + >>> + return true; >>> +} >>> + >>> +static bool trans_asrtgt_d(DisasContext *ctx, arg_asrtgt_d * a) >>> +{ >>> + TCGv t0, t1; >>> + >>> + t0 = get_gpr(a->rj); >>> + t1 = get_gpr(a->rk); >>> + >>> + gen_helper_asrtgt_d(cpu_env, t0, t1); >>> + >>> + return true; >>> +} >> >> I'm not sure why both of these instructions are in the ISA, since >> >> ASRTLE X,Y <-> ASRTGT Y,X >> >> but we certainly don't need two different helpers. >> Just swap the arguments for one of them. > > Hi, Richard. > > I find 'ASRTLE X,Y <-> ASRTGT Y,X ' is not right, > > ASRTLE X, Y is X <= Y, raise a exception. > ASRTGT Y, X is X < Y, raise a exception, lose X=Y. >
sorry, I said it wrong。 ASRTLE X, Y is X > Y, raise a exception. ASRTGT Y, X is X >= Y raise a exception. more X=Y. > Thanks > Song Gao >