Lines Matching refs:a

802 static bool gen_logic_imm_fn(DisasContext *ctx, arg_i *a,  in gen_logic_imm_fn()  argument
805 TCGv dest = dest_gpr(ctx, a->rd); in gen_logic_imm_fn()
806 TCGv src1 = get_gpr(ctx, a->rs1, EXT_NONE); in gen_logic_imm_fn()
808 func(dest, src1, a->imm); in gen_logic_imm_fn()
811 TCGv src1h = get_gprh(ctx, a->rs1); in gen_logic_imm_fn()
812 TCGv desth = dest_gprh(ctx, a->rd); in gen_logic_imm_fn()
814 func(desth, src1h, -(a->imm < 0)); in gen_logic_imm_fn()
815 gen_set_gpr128(ctx, a->rd, dest, desth); in gen_logic_imm_fn()
817 gen_set_gpr(ctx, a->rd, dest); in gen_logic_imm_fn()
823 static bool gen_logic(DisasContext *ctx, arg_r *a, in gen_logic() argument
826 TCGv dest = dest_gpr(ctx, a->rd); in gen_logic()
827 TCGv src1 = get_gpr(ctx, a->rs1, EXT_NONE); in gen_logic()
828 TCGv src2 = get_gpr(ctx, a->rs2, EXT_NONE); in gen_logic()
833 TCGv src1h = get_gprh(ctx, a->rs1); in gen_logic()
834 TCGv src2h = get_gprh(ctx, a->rs2); in gen_logic()
835 TCGv desth = dest_gprh(ctx, a->rd); in gen_logic()
838 gen_set_gpr128(ctx, a->rd, dest, desth); in gen_logic()
840 gen_set_gpr(ctx, a->rd, dest); in gen_logic()
846 static bool gen_arith_imm_fn(DisasContext *ctx, arg_i *a, DisasExtend ext, in gen_arith_imm_fn() argument
850 TCGv dest = dest_gpr(ctx, a->rd); in gen_arith_imm_fn()
851 TCGv src1 = get_gpr(ctx, a->rs1, ext); in gen_arith_imm_fn()
854 func(dest, src1, a->imm); in gen_arith_imm_fn()
855 gen_set_gpr(ctx, a->rd, dest); in gen_arith_imm_fn()
861 TCGv src1h = get_gprh(ctx, a->rs1); in gen_arith_imm_fn()
862 TCGv desth = dest_gprh(ctx, a->rd); in gen_arith_imm_fn()
864 f128(dest, desth, src1, src1h, a->imm); in gen_arith_imm_fn()
865 gen_set_gpr128(ctx, a->rd, dest, desth); in gen_arith_imm_fn()
870 static bool gen_arith_imm_tl(DisasContext *ctx, arg_i *a, DisasExtend ext, in gen_arith_imm_tl() argument
874 TCGv dest = dest_gpr(ctx, a->rd); in gen_arith_imm_tl()
875 TCGv src1 = get_gpr(ctx, a->rs1, ext); in gen_arith_imm_tl()
876 TCGv src2 = tcg_constant_tl(a->imm); in gen_arith_imm_tl()
880 gen_set_gpr(ctx, a->rd, dest); in gen_arith_imm_tl()
886 TCGv src1h = get_gprh(ctx, a->rs1); in gen_arith_imm_tl()
887 TCGv src2h = tcg_constant_tl(-(a->imm < 0)); in gen_arith_imm_tl()
888 TCGv desth = dest_gprh(ctx, a->rd); in gen_arith_imm_tl()
891 gen_set_gpr128(ctx, a->rd, dest, desth); in gen_arith_imm_tl()
896 static bool gen_arith(DisasContext *ctx, arg_r *a, DisasExtend ext, in gen_arith() argument
900 TCGv dest = dest_gpr(ctx, a->rd); in gen_arith()
901 TCGv src1 = get_gpr(ctx, a->rs1, ext); in gen_arith()
902 TCGv src2 = get_gpr(ctx, a->rs2, ext); in gen_arith()
906 gen_set_gpr(ctx, a->rd, dest); in gen_arith()
912 TCGv src1h = get_gprh(ctx, a->rs1); in gen_arith()
913 TCGv src2h = get_gprh(ctx, a->rs2); in gen_arith()
914 TCGv desth = dest_gprh(ctx, a->rd); in gen_arith()
917 gen_set_gpr128(ctx, a->rd, dest, desth); in gen_arith()
922 static bool gen_arith_per_ol(DisasContext *ctx, arg_r *a, DisasExtend ext, in gen_arith_per_ol() argument
936 return gen_arith(ctx, a, ext, f_tl, f_128); in gen_arith_per_ol()
939 static bool gen_shift_imm_fn(DisasContext *ctx, arg_shift *a, DisasExtend ext, in gen_shift_imm_fn() argument
946 if (a->shamt >= max_len) { in gen_shift_imm_fn()
950 dest = dest_gpr(ctx, a->rd); in gen_shift_imm_fn()
951 src1 = get_gpr(ctx, a->rs1, ext); in gen_shift_imm_fn()
954 func(dest, src1, a->shamt); in gen_shift_imm_fn()
955 gen_set_gpr(ctx, a->rd, dest); in gen_shift_imm_fn()
957 TCGv src1h = get_gprh(ctx, a->rs1); in gen_shift_imm_fn()
958 TCGv desth = dest_gprh(ctx, a->rd); in gen_shift_imm_fn()
963 f128(dest, desth, src1, src1h, a->shamt); in gen_shift_imm_fn()
964 gen_set_gpr128(ctx, a->rd, dest, desth); in gen_shift_imm_fn()
969 static bool gen_shift_imm_fn_per_ol(DisasContext *ctx, arg_shift *a, in gen_shift_imm_fn_per_ol() argument
984 return gen_shift_imm_fn(ctx, a, ext, f_tl, f_128); in gen_shift_imm_fn_per_ol()
987 static bool gen_shift_imm_tl(DisasContext *ctx, arg_shift *a, DisasExtend ext, in gen_shift_imm_tl() argument
993 if (a->shamt >= max_len) { in gen_shift_imm_tl()
997 dest = dest_gpr(ctx, a->rd); in gen_shift_imm_tl()
998 src1 = get_gpr(ctx, a->rs1, ext); in gen_shift_imm_tl()
999 src2 = tcg_constant_tl(a->shamt); in gen_shift_imm_tl()
1003 gen_set_gpr(ctx, a->rd, dest); in gen_shift_imm_tl()
1007 static bool gen_shift(DisasContext *ctx, arg_r *a, DisasExtend ext, in gen_shift() argument
1011 TCGv src2 = get_gpr(ctx, a->rs2, EXT_NONE); in gen_shift()
1017 TCGv dest = dest_gpr(ctx, a->rd); in gen_shift()
1018 TCGv src1 = get_gpr(ctx, a->rs1, ext); in gen_shift()
1022 gen_set_gpr(ctx, a->rd, dest); in gen_shift()
1024 TCGv src1h = get_gprh(ctx, a->rs1); in gen_shift()
1025 TCGv desth = dest_gprh(ctx, a->rd); in gen_shift()
1031 gen_set_gpr128(ctx, a->rd, dest, desth); in gen_shift()
1036 static bool gen_shift_per_ol(DisasContext *ctx, arg_r *a, DisasExtend ext, in gen_shift_per_ol() argument
1049 return gen_shift(ctx, a, ext, f_tl, f_128); in gen_shift_per_ol()
1052 static bool gen_unary(DisasContext *ctx, arg_r2 *a, DisasExtend ext, in gen_unary() argument
1055 TCGv dest = dest_gpr(ctx, a->rd); in gen_unary()
1056 TCGv src1 = get_gpr(ctx, a->rs1, ext); in gen_unary()
1060 gen_set_gpr(ctx, a->rd, dest); in gen_unary()
1064 static bool gen_unary_per_ol(DisasContext *ctx, arg_r2 *a, DisasExtend ext, in gen_unary_per_ol() argument
1077 return gen_unary(ctx, a, ext, f_tl); in gen_unary_per_ol()
1080 static bool gen_amo(DisasContext *ctx, arg_atomic *a, in gen_amo() argument
1084 TCGv dest = dest_gpr(ctx, a->rd); in gen_amo()
1085 TCGv src1, src2 = get_gpr(ctx, a->rs2, EXT_NONE); in gen_amo()
1095 src1 = get_address(ctx, a->rs1, 0); in gen_amo()
1098 gen_set_gpr(ctx, a->rd, dest); in gen_amo()
1102 static bool gen_cmpxchg(DisasContext *ctx, arg_atomic *a, MemOp mop) in gen_cmpxchg() argument
1104 TCGv dest = get_gpr(ctx, a->rd, EXT_NONE); in gen_cmpxchg()
1105 TCGv src1 = get_address(ctx, a->rs1, 0); in gen_cmpxchg()
1106 TCGv src2 = get_gpr(ctx, a->rs2, EXT_NONE); in gen_cmpxchg()
1111 gen_set_gpr(ctx, a->rd, dest); in gen_cmpxchg()